![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Toohtik |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 142 Регистрация: 30.1.2006 Где: Харьков Репутация: нет Всего: нет |
Каким образом можно узнать о приостановке потока. Я слыхал, что это все делается через структуру CONTEXT, но никак не найду соответствующий регистр. В принципе, если есть какой то метод MFC класса CWinThread, то он тоже пойдет.
|
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 10 Всего: 124 |
Если это текущий поток, то в момент проверки он не простаивает
Иначе можно вызвать SuspendThread() и по результату выяснить состояние, потом при необходимости можно восстановить состояние потока, вызвав ResumeThread() Или же наоборот (Resume и Suspend) Какую последовательность использовать — зависит от логики программы (например, если останавливать поток нежелательно, вызовите сначала Resume) Это сообщение отредактировал(а) SergeCpp - 24.10.2007, 08:40 |
|||
|
||||
alias_trinity |
|
||||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 10.5.2007 Репутация: 1 Всего: 1 |
Есть натив функция NtQuerySystemInformation
С флагом SystemProcessesAndThreadsInformation получаешь процессы с приатаченными детальными структурами по всем потокам в этих процессах. Далее выбираешь нужный процесс и проходишся по массиву структур его потоков. В них есть поля State/WaitReason - это то, что тебе нужно. Таблица состояний для State:
Таблица состояний для WaitReason:
З.Ы. Сделай импорт ф-ции с ntdll.dll или подключи аналогичную либу |
||||
|
|||||
alias_trinity |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 10.5.2007 Репутация: 1 Всего: 1 |
Если с Натив АПИ никогда не работал, то состояние потока можно узнать так:
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |