Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Внизкак проверить жив ли поток??? Найти похожие ветки
← →
GanibalLector © (2004-08-27 13:02) [0]Т.е.предположим имеется
TerminateThread(CommThread,0);// остановить поток
CloseHandle(CommThread); // убийство потока
и вот как узнать,что теперь его нет ???
З.Ы. Я балуюсь с ThreadID та которая CommThread := CreateThread(nil,0,@potok,nil,0,ThreadID)
и проверяю ее на нуль.Если не нуль,то жив,если нуль то мертв.Естественно,приходится делать еще так:
TerminateThread(CommThread,0);// остановить поток
CloseHandle(CommThread);
ThreadID:=0;
но,ИМХО,существует куда более ПРАВИЛЬНЫЙ способ.Но вот какой???
Спасибо...
← →
Digitman © (2004-08-27 13:25) [1]
> и проверяю ее на нуль
с какого перепугу она "нуль" станет ?
← →
Digitman © (2004-08-27 13:27) [2]
> TerminateThread(CommThread,0);// остановить поток
> CloseHandle(CommThread); // убийство потока
TerminateThread(CommThread,0);// УБИТЬ поток
CloseHandle(CommThread); // закрыть дескриптор потока
!!
> существует куда более ПРАВИЛЬНЫЙ способ
естественно ! Ведь TerminateThread() - это функция.
← →
GanibalLector © (2004-08-27 14:47) [3]естественно ! Ведь TerminateThread() - это функция.
Ну и что с того???
← →
GanibalLector © (2004-08-27 14:50) [4]УБИТЬ поток
закрыть дескриптор потока
Согласен! От вольного комментарии писал...
← →
N170 (2004-08-27 15:00) [5]как узнать,что теперь его нет
if ( WAIT_OBJECT_0 = WaitForSingleObject(handle) ) then .... {dead}
← →
N170 (2004-08-27 15:02) [6]поправка WaitForSingleObject(handle,0)
← →
Digitman © (2004-08-27 15:08) [7]
> GanibalLector © (27.08.04 14:47) [3]
> естественно ! Ведь TerminateThread() - это функция.
> Ну и что с того???
у тебя задача какая ? "убить" тред ? Ну так и "убивай" его ! Но после "попытки убийства" проверяй ее результат ! он тебе как раз и подскажет, "убил" ли ты кого или стрелял из рогатки в небо
← →
GanibalLector © (2004-08-27 19:31) [8]Digitman
у тебя задача какая ? "убить" тред ?
В проекте несколько форм.Так вот,в некоторых из них,есть условие:
-если поток жив(неважно,пусть даже остановленный) то делать ТО-ТО
-если мертв,то делать иное.
N170
Спасибо...ща посмотрю.
← →
Digitman © (2004-08-29 12:00) [9]
> если поток жив(неважно,пусть даже остановленный)
.. и создал, например, очередь сообщений (Peekmessage, GetMessage), то ф-ция PostThreadMessage() вернет True - это один из вариантов проверки
← →
Ertong © (2004-08-31 02:30) [10]
> -если поток жив(неважно,пусть даже остановленный) то делать
> ТО-ТО
> -если мертв,то делать иное.
А почему-бы не создать для этого мютекс.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.059 c