Невозможно записать файл, отображенный в память, на диск без остановки хост-процесса - PullRequest
2 голосов
/ 07 декабря 2011

У меня есть файл с отображением в памяти, и мне необходимо периодически сбрасывать его содержимое на диск, чтобы внешние продукты могли его скопировать и прочитать. На данный момент файл никогда не обновляется, пока я не закрою процесс хостинга.

Вот настройка сопоставленного файла:

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, но он тоже не работал.

...