CRITICAL_SECTION вместе с Shared Memory
От: AlexGin Беларусь  
Дата: 20.10.16 10:56
Оценка:
Доброе время суток, уважаемые коллеги!

При разработке нашего проекта, возникла необходимость работать с большим объемом памяти.
Для этого — я применил Shared Memory (через вызовы API CreateFileMapping, MapViewOfFile и т.д.).
Это всё отлично работает при однопоточном варианте.

Однако, при многопоточном, когда переключение страниц через вызов MapViewOfFile происходит из разных (рабочих) потоков — имеют место проблемы.
Приложение зависает, в некоторый момент при обработке информации. Выявить более подробно — ни отладчиком, ни логированием — не удаётся.
Причине проблем — мне пока не понятна.
Возможно проблемы из-за того, что действия с Shared Memory у меня защищены (для многопоточного режима) объетами типа CRITICAL_SECTION?
В то же время, так как у меня всё в одном процессе, считаю применение CRITICAL_SECTION вплне логичным.

Например здесь:
http://www.cyberforum.ru/win-api/thread404316.html
вообще не советуют работать с Shared Memory в рабочих потоках

...само проецирование на физ-память из страничного файла и прекращение проецирования в потоках лучше не далать.

не знаю, с чем это связано и есть ли тут какие-либо ограничения.
Какие здесь могут быть мысли на этот счёт?

P.S. Заранее благодарю за любые ответы!
Отредактировано 20.10.2016 11:16 AlexGin . Предыдущая версия . Еще …
Отредактировано 20.10.2016 11:10 AlexGin . Предыдущая версия .
Отредактировано 20.10.2016 11:02 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.