如果我在同一个 MemoryMappedFile
中并行读写会发生什么?我是否有必要在阅读之前通过 Mutext
锁定它们,如 MSDN 上的示例所示?
最佳答案
从您的内存映射文件创建的每个“ View ”一次只能由一个线程访问,但是您可以创建多个 View 流并且每个线程可以同时写入或读取它。
但是,如果多个 View 同时尝试写入同一位置,您可能会得到相互“混合”的数据。示例中的互斥锁是为了防止这种混合。如果一个应用程序仅写入文件而另一个应用程序仅读取文件,则不需要互斥体,您只需要为多个写入者使用它。
关于c# - 与 MemoryMappedFile 并行读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31726414/