完全托管的共享内存.NET实现?

em7*_*m70 8 .net c# ipc shared-memory

我正在寻找.NET的免费,完全托管的共享内存实现(P/Invoke是可以接受的,混合C++/CLI不是).

Han*_*ant 16

嗯,.NET框架是免费的,推荐..NET 4.0支持System.IO.MemoryMappedFiles命名空间类.共享内存是一个相当剧烈的阻抗与垃圾收集器的概念不匹配,这就是为什么它需要一段时间.除非使用指针,否则从GC堆复制到MMF视图是不可避免的.

其他IPC机制也使用共享内存,因为它内置于内核中,所以它并不明确.这一切都以大致相同的速度运行,微秒设置映射,然后只是总线带宽来执行内存到内存复制.每秒5千兆字节是你遇到的最慢的.


Ric*_*lay 8

听起来你正在寻找.NET 4.0 BCL支持的内存映射文件.

从.NET Framework版本4开始,您可以使用托管代码访问内存映射文件,方法与本机Windows函数访问内存映射文件的方式相同,如在MSDN Library中管理Win32中的内存映射文件中所述