我的程序需要將信息從一個零件發送到另一個零件,例如從DragEnter
到GiveFeedback
以更改光標。這很容易用一個變量作爲標誌來完成。但是 - 如果用戶啓動該程序的多個實例呢?獲得程序的多個實例共享信息的最佳方式是什麼?
一種方法是將信息寫入文件,但似乎最好儘可能少地執行磁盤操作。另一種方法是使用管道,但如果程序有很多實例,看起來有點複雜。有另一種方法嗎?
我的程序需要將信息從一個零件發送到另一個零件,例如從DragEnter
到GiveFeedback
以更改光標。這很容易用一個變量作爲標誌來完成。但是 - 如果用戶啓動該程序的多個實例呢?獲得程序的多個實例共享信息的最佳方式是什麼?
一種方法是將信息寫入文件,但似乎最好儘可能少地執行磁盤操作。另一種方法是使用管道,但如果程序有很多實例,看起來有點複雜。有另一種方法嗎?
內存映射文件包含虛擬內存中文件的內容。文件和內存空間之間的映射使應用程序(包括多個進程)能夠通過直接讀寫內存來修改文件。
太棒了!這似乎正是我所尋找的。 – ispiro 2011-12-19 21:11:20
Model-View-Controller 很可能是我將如何設置它...這就是如果我正確理解你的問題。
「這就是如果我正確理解你的問題。」我不認爲你是。我不知道MVC是IPC的通用解決方案。 – vcsjones 2011-12-19 21:10:05
你在問一個設計模式嗎? – AlfredoVR 2011-12-19 21:05:50
爲什麼你需要在應用程序的多個實例之間共享信息?你會分享哪些數據?你不能使用傳遞給'DragEnter'事件的['IDataObject'](http://msdn.microsoft.com/en-us/library/system.windows.forms.idataobject.aspx)來提供這些信息嗎? – 2011-12-19 21:10:15
@AllonGuralnek聽起來不錯。你是怎樣做的?據我所知,'UseDefaultCursors'只能在'GiveFeedback'中訪問,而不能在'DragEnter'中訪問。 – ispiro 2011-12-19 21:23:37