2011-01-20 4 views
0

Вы хотите защитить от одновременного чтения/записи в сопоставленную карту памяти, которая открыта несколькими процессами?Управление чтением/записью в файлы с отображением памяти (windows)

Например, если строка в памяти «привет», и один процесс записывает «hi ...» поверх нее, могу ли я сказать, что другой процесс, который читается в одно и то же время, может получить прерывистое значение, например, hi.lo "?

В основном, я спрашиваю, как люди снова защищают подобные вещи. Вы хотите использовать семафоры? Выполняют ли эти работы разные процессы?

ответ

1

Да, если вам нужно защитить от нескольких писателей или не читать частичные обновления, тогда для управления доступом к общим данным будет использоваться общий Mutex/Semaphore, используемый каждым процессом.

Существует пример кода, который делает это в нижней части этой статьи MSDN: Memory-Mapped Files in .NET 4.0