Как обработать сообщение WM_QUERYENDSESSION в многопроцессорном приложении Win32? - PullRequest
0 голосов
/ 24 июня 2018

У меня есть приложение win32, которое порождает несколько длительных процессов.

В основном процессе (который создает пользовательский интерфейс и порождает рабочие процессы) я обрабатываю WM_QUERYENDSESSION, чтобы заблокировать завершение работы в случае, если мое приложениеделать что-то критическое, что может привести к повреждению данных.Проблема заключается в том, что даже до того, как основной процесс получает WM_QUERYENDSESSION, Windows убивает дочерний процесс (который не имеет специальной обработки WM_QUERYENDSESSION), оставляя приложение в недопустимом состоянии.

Каков правильный способобрабатывать WM_QUERYENDSESSION в этом случае?Нужно ли обрабатывать сообщение в каждом дочернем процессе и каким-либо образом координировать завершение работы всех процессов, или есть ли способ сообщить Windows, что дочерние процессы не должны быть закрыты при завершении работы, и вместо этого главный процесс будет отвечать за их очистку?

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