2011-12-19 24 views
0

我的程序需要将信息从一个零件发送到另一个零件,例如从DragEnterGiveFeedback以更改光标。这很容易用一个变量作为标志来完成。但是 - 如果用户启动该程序的多个实例呢?获得程序的多个实例共享信息的最佳方式是什么?

一种方法是将信息写入文件,但似乎最好尽可能少地执行磁盘操作。另一种方法是使用管道,但如果程序有很多实例,看起来有点复杂。有另一种方法吗?

+0

你在问一个设计模式吗? – AlfredoVR 2011-12-19 21:05:50

+0

为什么你需要在应用程序的多个实例之间共享信息?你会分享哪些数据?你不能使用传递给'DragEnter'事件的['IDataObject'](http://msdn.microsoft.com/en-us/library/system.windows.forms.idataobject.aspx)来提供这些信息吗? – 2011-12-19 21:10:15

+0

@AllonGuralnek听起来不错。你是怎样做的?据我所知,'UseDefaultCursors'只能在'GiveFeedback'中访问,而不能在'DragEnter'中访问。 – ispiro 2011-12-19 21:23:37

回答

7

看看memory mapped files

内存映射文件包含虚拟内存中文件的内容。文件和内存空间之间的映射使应用程序(包括多个进程)能够通过直接读写内存来修改文件。

+0

太棒了!这似乎正是我所寻找的。 – ispiro 2011-12-19 21:11:20

0

Model-View-Controller 很可能是我将如何设置它...这就是如果我正确理解你的问题。

+0

“这就是如果我正确理解你的问题。”我不认为你是。我不知道MVC是IPC的通用解决方案。 – vcsjones 2011-12-19 21:10:05

相关问题