【发布时间】:2009-12-14 22:40:54
【问题描述】:
我记得在使用 C 和 win32 的时候,我有许多 IPC 技术。到目前为止,我还没有在 .NET 中遇到过它们中的任何一个,也没有在 C 之外看到过它们,所以我想我想问我该如何使用这些进程间通信技术?
共享/全局内存。只需分配可以被另一个进程更改而无需任何信号的 ram。
窗口消息。我记得使用 SendMessage 并使用 WM_USER + N 并在我触摸共享内存时告诉另一个应用程序,要求它更改文件或设置,有时还告诉其他应用程序我输入了一些击键来充当宏,因为我有时会感到懒惰。
动态数据交换。我尝试过,但永远无法让它发挥作用。据我记得(警告这可能是完全错误的),您将自己注册到全局消息或事件,另一个应用程序(通常是您的)将发送消息,这两个左右的应用程序可以相互通信,发布消息,您可以进行集成以这种方式在两个应用程序之间。我很想知道是什么取代了它。
还有一些我知道仍在使用和看到的命名管道。我记得有人推荐 IPC 的套接字,但我从不喜欢这样做,而且我知道它仍然存在并且可以在需要时使用。
我还错过了什么,以及是什么取代了这种技术?我知道有很酷的全局互斥锁。我仍在寻找一种在两个应用程序之间发送消息的现代方式(第 2 点)。我一直想知道是否存在某种不在管道中的 FIFO 队列。就像 Windows 消息一样,除了我可以推送数据(如 1k)而不是每次发送消息和分配全局内存。
-编辑-凹凸。目前这个话题仍然与我相关。
【问题讨论】:
标签: .net ipc shared-memory windows-messages dynamic-data-exchange