与 MemoryMappedFile 并行读写

Ben*_*dEg 3 c# ipc memory-mapped-files inter-process-communicat

如果我同时并行读写会发生什么MemoryMappedFile?是否有必要Mutext在阅读之前锁定它们,如 MSDN 上的示例所示?

内存映射文件

Sco*_*ain 6

从内存映射文件创建的每个“视图”一次只能由一个线程访问,但是您可以创建多个视图流,并且每个线程可以同时对其进行写入或读取。

但是,如果多个视图同时尝试写入同一位置,您可能会得到彼此“混合”的数据。示例中的互斥锁是为了防止这种混合。如果一个应用程序只写入文件而另一个只读取文件,则不需要互斥锁,您只需要多个编写器即可。