【发布时间】:2011-11-06 22:54:44
【问题描述】:
我想在
编辑: 我将坚持使用 WM_COPYDATA 并附加到一个列表(这是一个快速操作)。然后对这个列表进行后期处理。
【问题讨论】:
-
这个 SO 问题有关于在 .NET 中使用共享内存的信息:stackoverflow.com/questions/439787/… 如果进程在同一台机器上,很难比这更快。
标签: c winapi interop c#-2.0 ipc
我想在
编辑: 我将坚持使用 WM_COPYDATA 并附加到一个列表(这是一个快速操作)。然后对这个列表进行后期处理。
【问题讨论】:
标签: c winapi interop c#-2.0 ipc
最快的选择可能是使用named pipes via P/Invoke。这仍然比大多数其他 IPC 选项具有更高的性能。
【讨论】:
共享内存或 MMF 是最快的方法。它与内核对象一样快,用于发出有关数据可用性的信号。而且,更重要的是,您可以先打开共享内存,然后将数据直接放在那里(为您节省一次复制操作)并向其他应用程序发出信号。其他应用程序可以直接使用共享内存中的数据(同样,无需复制)。
【讨论】:
目前在 win32 上不是最快的,但值得研究:0mq
在 Windows 上使用 TCP 套接字,但效率很高。
对于一个封闭源代码的解决方案,我认为 29 West 的 Ultra Messaging 不容易被击败,包括 .net 中罕见的零复制消息传递功能
【讨论】: