Главная страница
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.025 c
1-1095937631
XM-AD
2004-09-23 15:07
2004.10.10
Как завершить процес???


1-1095303974
Kair()
2004-09-16 07:06
2004.10.10


14-1095859186
kaZaNoVa
2004-09-22 17:19
2004.10.10
Скорость доступа к диску, или как ускорить HARD


1-1096113812
cv
2004-09-25 16:03
2004.10.10
keypres


3-1095263457
Surrender
2004-09-15 19:50
2004.10.10
DateTime в формате String в базе Access