2010-11-18 5 views
0

Возможно, я неправильно понял, как работают файлы с памятью, но как добавить в конец файла, когда я использую MemoryMappedFile? CreateViewAccessor позволяет мне только создать представление о емкости текущего файлаЧто касается MemoryMappedFile?

Я мог бы написать до конца, используя базовый FileStream, но не так ли это для поражения памяти MemoryMapping? (Я думал, что он будет кэшировать и записывать на диск добавление также). Другой вариант - кэшировать записи и читать из кеша, а не поток памяти для добавленных данных.

Просто интересно, что обычная практика для работы с памятью отображенных файла, который растет, так что я не изобретать колесо еще раз

ответ

0

Вы не можете изменить размер после создания карты памяти. Вы можете указать размер при создании карты. см. http://msdn.microsoft.com/en-us/library/dd987389.aspx

Карты памяти - это своего рода передовая технология ввода-вывода. Вы не должны использовать его, если (1) он не требуется в родной библиотеке; (2) вам нужен произвольный доступ в критичной для производительности среде. В любом случае вы не должны использовать его без понимания родной (машинного) импликации.