CreateFileMapping с несколькими потоками - PullRequest
2 голосов
/ 21 декабря 2009

я пытаюсь использовать 2 потока, работающих одновременно, и оба с помощью функции FileMapping для сопоставления файла в памяти с помощью разных дескрипторов Проблема в том, что функция MapViewOfFile иногда выделяет сопоставление в обоих потоках для одного и того же смещения памяти. Я попытался использовать мьютекс в этих частях, но, кажется, после большого использования я не могу записать в местоположение сопоставления. попытался использовать MapViewOfFileEx, который получает смещение памяти для использования, но я не знаю, какое смещение я должен предоставить его. любая помощь будет оценена. спасибо.

1 Ответ

0 голосов
/ 27 декабря 2009

Я выполнил несколько тестов и не получаю один и тот же адрес для сопоставленного представления, если оба экземпляра сопоставления файлов не помечены только для чтения, даже если оба представления сопоставлены из одного и того же объекта сопоставления файлов. ОС собирается отобразить представление на основе адресного пространства процесса, а не на основе того, какой поток открывает представление. Можете ли вы показать нам код, который вы используете для получения дескриптора файла, дескриптора сопоставления файлов и отображенного представления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...