Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Остановлен ли поток после TerminateThread ?


Juice ©   (2005-07-25 14:45:00) 

Прочитал у Рихтера, что вызов TerminateThread еще не означает что после выполнения данной функции можно считать что поток остановлен и уничтожен - это может произойти с некоторой задержкой. Как тогда узнать, что поток действительно остановлен ?


h := pQueryThread.Handle;
   TerminateThread(pQueryThread.Handle, 1);
   r:=WaitForSingleObject(h, INFINITE);  //r=0


Однако получается лажа, он еще что-то делает


begin...end   (2005-07-25 16:32:00) [1]

> Juice ©   (25.07.05 14:45)
> r:=WaitForSingleObject(h, INFINITE);  // r=0

Ну и? Разве это не означает, что поток завершился?


Juice   (2005-07-25 14:56:00) [2]


> Когда он
> еще что-то делает
> проверяй
> if Terminated then
>  Прекращай что-то делать.

:)


Kolan   (2005-07-25 14:48:00) [3]

Когда он
еще что-то делает
проверяй
if Terminated then
 Прекращай что-то делать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо