Вызов TerminateThread в потоке Windows при выходе из приложения - PullRequest
0 голосов
/ 31 октября 2011

Прежде всего, позвольте мне начать с того, что я понимаю все опасности вызова TerminateThread извне потока, вместо того, чтобы сигнализировать потоку о том, что он должен выйти сам и ждать, пока это произойдет.

У меня вопрос, могу ли я вызвать TerminateThread прямо перед закрытием приложения. Существует 100% гарантия того, что приложение закроется в тот самый момент. Рискну ли я понести утечку памяти в этом случае? Или что-нибудь, что должно помешать мне вызывать этот API в данной конкретной ситуации?

PS. Я хочу позвонить, чтобы приложение закрывалось быстрее. Это слишком долго, чтобы объяснить, но мне нужно это приложение, чтобы выйти как можно скорее при определенных условиях. (Приложение является заставкой и должно закрываться, как только пользователь перемещает мышь.)

1 Ответ

2 голосов
/ 31 октября 2011

TerminateThread, вероятно, только усугубит ситуацию, поскольку это приведет к потере критических разделов (и, если вам действительно не повезет, это будет критический раздел кучи или критический раздел загрузчика).Если вы действительно хотите выйти из уклонения как можно быстрее, просто TerminateProcess.Имейте в виду, это обходит всех DLL_PROCESS_DETACH и глобальных деструкторов, но вы сказали, что хотите выйти как можно быстрее.

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