2011-12-19 57 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

相關問題