我有一个内存映射文件,需要定期将其内容刷新到磁盘,以便外部产品可以复制并读取它。目前,在我关闭托管过程之前,文件永远不会更新。
以下是映射文件的设置:
MemoryMappedFile _memoryMappedFile = MemoryMappedFile.CreateFromFile(fileName,FileMode.OpenOrCreate, cacheName,maxBytes,MemoryMappedFileAccess.ReadWrite);
MemoryMappedViewStream _viewAccessor = _memoryMappedFile.CreateViewStream();
以下是我写信给我的方式:
byte [] message = Encoding.UTF8.GetBytes(content);
_viewAccessor.Write(message,0,message.Length); _viewAccessor.Flush();
理想情况下,我计划每分钟调用一次flush
方法,但此刻它似乎没有任何效果。我怎样才能让它冲洗?
注意:我也尝试使用MemoryMappedViewAccessor
类型,但也无效。