问题描述
我在MSDN上阅读
内存映射文件包含虚拟内存中文件的内容。文件和内存空间之间的这种映射使包括多个进程的应用程序可以通过直接读写内存来修改文件。
来源: https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files
在另一个论坛上:
如果我使用MemoryMappedFile.CreateFromFile
从两个不同的应用程序中创建两个内存映射文件,并为其分配相同的名称,会发生什么情况?这会引发异常吗?
解决方法
经过测试后,我发现抛出了异常:
Unhandled exception. System.IO.IOException: Cannot create a file when that file already exists.
at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(FileStream fileStream,String mapName,HandleInheritability inheritability,MemoryMappedFileAccess access,MemoryMappedFileOptions options,Int64 capacity)
at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path,FileMode mode,Int64 capacity,MemoryMappedFileAccess access)
at LiveFileReader.AsyncLiveFileReader..ctor(String filePath) in ...