Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.10;
Скачать: CL | DM;

Вниз

как проверить жив ли поток???   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2004.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
14-1095934931
Layner
2004-09-23 14:22
2004.10.10
OpenSourse


1-1095862935
Cosinus
2004-09-22 18:22
2004.10.10
ComponentCount (Components[i])... Как формируется?


14-1095918599
Lexxx
2004-09-23 09:49
2004.10.10
Мастера, подскажите, можно ли в XP Home поставить IIS 5.0?


3-1095243691
Viper
2004-09-15 14:21
2004.10.10
Результат TQuery и TCombobox


1-1096249314
Ryoko
2004-09-27 05:41
2004.10.10
Проверка буфера обмена