Как определить, что приложение MFC не отвечает? - PullRequest
0 голосов
/ 09 июня 2009

Как определить, что приложение MFC не отвечает?

Ответы [ 2 ]

2 голосов
/ 09 июня 2009

Либо одно и то же приложение может запустить отдельный поток, либо какое-либо другое приложение может запустить свой собственный поток и периодически вызывать SendMessageTimeout (), чтобы отправить сообщение WM_NULL соответствующему приложению. Если время ожидания истекло, это означает, что приложение не отвечает.

0 голосов
/ 10 июня 2009

Если вы спрашиваете, как сделать это из самого процесса, вы не можете, это парадокс. Заблокированный процесс не может определить, не отвечает ли он. Это как если бы кто-то проснулся, чтобы спросить себя, спит ли он.

Исходя из этого и вашего другого вопроса , я предполагаю, что у вас длительная операция, и вы хотите, чтобы пользователь дождался ее завершения. Если они нажмут на ваше окно до того, как это будет сделано, они «не отвечают» и могут закрыть приложение слишком рано.

Вам необходимо выполнить длительную операцию в отдельном потоке. Вот отличная отправная точка: Статья CodeProject

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