Сейчас на форуме: _MBK_ (+7 невидимых) |
![]() |
eXeL@B —› Основной форум —› Выполняется ли поток? Как узнать? |
Посл.ответ | Сообщение |
|
Создано: 11 июня 2009 12:18 · Поправил: Enigma · Личное сообщение · #1 |
|
Создано: 11 июня 2009 12:20 · Личное сообщение · #2 ну вот так можно ![]() Code:
... If the specified thread has not terminated, the termination status returned is STILL_ACTIVE. If the thread has terminated, the termination status returned may be one of the following: · The exit value specified in the ExitThread or TerminateThread function. · The return value from the thread function. · The exit value of the thread's process. ----- [nice coder and reverser] ![]() |
|
Создано: 11 июня 2009 12:30 · Личное сообщение · #3 |
|
Создано: 11 июня 2009 12:40 · Личное сообщение · #4 |
|
Создано: 11 июня 2009 12:40 · Личное сообщение · #5 Hellspawn Да, точно, спасибо! Кстати пробовал сделать эту проверку через GetHandleInfromation, вроде бы как если поток допустим уничтожен, то и его хендл должен быть уничтожен, а нет, GetHandleInfromation все равно возвращает true. Smon Так они и были... только через GetThreadContext, а оно оказывается не работает на последних Windows 7... FYI ![]() |
|
Создано: 11 июня 2009 13:30 · Поправил: only · Личное сообщение · #6 |
|
Создано: 11 июня 2009 14:39 · Личное сообщение · #7 only прав. Но это долго очень. Быстро можно узнать посредством NtSuspendThread, сервис увеличит счётчик остановок треда и возвратит предыдущее значение, после чего выполняем декремент счётчика дабы вернуть его в исходное значение посредством NtResumeThread. Это вернёт значение счётчика остановок треда. Размеется это не позволяет определить например ожидание треда на обьекте и пр. ![]() |
|
Создано: 07 августа 2009 07:23 · Личное сообщение · #8 В плане уничтожения, поток и его хендл не зависят друг от друга, поэтому функции типа GetHandleInformation или WaitForSingleObject могут не давать истинной картины. Использовать GetExitCodeThread можно, но если код выхода (или ошибки) потока будет равен STILL_ACTIVE (259), то вряд ли мониторящий поток это поймет правильно ![]() ![]() |
|
Создано: 07 августа 2009 12:51 · Личное сообщение · #9 |
|
Создано: 07 августа 2009 16:12 · Личное сообщение · #10 |
![]() |
eXeL@B —› Основной форум —› Выполняется ли поток? Как узнать? |
Эта тема закрыта. Ответы больше не принимаются. |