Как найти текущее состояние потока в структуре планировщика в Windows? - PullRequest
0 голосов
/ 07 января 2010

Я хочу знать текущее состояние (состояние SUSPENDED / READY / RUNNING / WAITING) потока, созданного API CreateThread ().

Как я могу это выяснить?

Моя среда разработки - Visual Studio 2008 Expresss edition

также язык C / C ++

/ рэнджит г

Ответы [ 2 ]

0 голосов
/ 31 марта 2010

Вы можете найти этот Монитор состояния потоков (бесплатно) полезным для просмотра состояния потоков в вашем приложении.

0 голосов
/ 07 января 2010

Как уже отвечали ранее: -

Проверка, запущен ли поток Win32 или находится в приостановленном состоянии

API, которые предоставляют эту информацию, не предоставляются, потому что информация, которую они возвращают, устарела до своего возвращения. Если вы хотите узнать, приостановлен ли поток - вызовите SuspendThread. Теперь вы знаете, что (a) поток имеет счетчик приостановок по крайней мере 1, и, поскольку SuspendThread возвращает «предыдущий» счетчик приостановок, вы можете знать, что в какой-то момент во время вызова SuspendThread счетчик приостановок был 0 или какой-то номер. Та же логика применима для тестирования, если поток «застрял» в WaitForXObject (s): - пока вы не остановите поток, вы не можете знать ответ на этот вопрос безопасно.

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