Прочитать файл с отображением в памяти несколько раз
Я пытаюсь написать приложение, которое открывает отображенный в памяти файл и читает его каждый раз, когда поступают новые данные из другого приложения.
Мой вопрос заключается в том, как мое приложение знает, когда поступают новые данные для чтения, или оно просто постоянно зацикливается и читается, и надеюсь, что когда-нибудь оно увидит новые данные?
Какой механизм Windows предоставляет для многократного чтения файла с отображенной памятью.
Спасибо,
1 ответ
Вы можете заставить программу, обновляющую отображенный в памяти файл, вызывать событие при записи новых данных, а другой программе подписаться на это событие. Затем он будет читать с карты памяти, когда получит уведомление о событии.
В MSDN есть пример проекта, который показывает, как это сделать.
Я создал библиотеку, которая позволяет осуществлять межпроцессное взаимодействие с использованием общего сопоставленного файла памяти, в котором два или более процессов могут читать и записывать байтовые массивы. Он предоставляет метод для записи и событие, которое вызывается каждый раз, когда доступны новые данные. Каждая операция выполняется в фоновом режиме, поэтому ваше приложение никогда не блокируется во время ожидания сообщений.
https://code.msdn.microsoft.com/windowsdesktop/Inter-process-communication-e96e94e7