0

也许我从根本上误解了内存映射文件的工作原理,但是,当我使用 MemoryMappedFile 时,如何附加到文件的末尾?CreateViewAccessor 只允许我创建文件当前容量的视图

我可以改用底层的 FileStream 写到最后,但这不会破坏使用 MemoryMapping 的目的吗?(我认为它也会缓存并将附加内容写入磁盘)。另一种选择是缓存写入和从缓存中读取,而不是附加数据的内存流。

只是想知道使用不断增长的内存映射文件的常见做法是什么,所以我不再重新发明轮子

4

1 回答 1

0

创建内存映射后,您无法更改大小。您可以在创建地图时指定大小。请参阅http://msdn.microsoft.com/en-us/library/dd987389.aspx

内存映射是某种高级 i/o 技术。除非(1)本机库需要它,否则您不应使用它;(2) 你需要在性能关键的环境中随机访问。在任何一种情况下,您都不应在不了解本机(机器级)含义的情况下使用它。

于 2010-11-18T05:29:10.247 回答