Вниз
Скачать: CL | DM;

Как проверить существует ли поток...   Найти похожие ветки 

← →
Tempora   (2006-05-22 18:07) [0]

Есть два потока. В одноим из потоков должна идти обработка которая требует результатов из другого потока.
Как убедиться перед запуском обработки что второй поток закончил свою работу (свое выполнение)? И если не закончил, то дождаться его?


← →
TUser ©   (2006-05-22 18:10) [1]

Проверить флаг TThread.Terminated
while not YourThread.Terminated do sleep(1000);

Воспользоваться встроенными в Windows средствами синхронизации - например, создать в потоке мьютекс и вызвать подождать его освобождения. Подробно этот вопрос описан, например, в книге Рихтера.


← →
Eraser ©   (2006-05-22 18:13) [2]


> TUser ©   (22.05.06 18:10) [1]


> создать в потоке мьютекс и вызвать подождать его освобождения

в качестве объекта синхронизации (т.е. того который передаётся в wait функцию) может выступать и сам поток, вернее его дескриптор.
The WaitForSingleObject function can wait for the following objects:
Change notification
Console input
Event
Job
Memory resource notification
Mutex
Process
Semaphore
Thread
Waitable timer


← →
Leonid Troyanovsky ©   (2006-05-22 18:15) [3]


> TUser ©   (22.05.06 18:10) [1]

> Воспользоваться встроенными в Windows средствами синхронизации
> - например, создать в потоке мьютекс


А зачем мьютекс? Можно использовать хендл самого потока.

--
Regards, LVT.


← →
begin...end ©   (2006-05-22 18:18) [4]

> Как проверить существует ли поток...

GetExitCodeThread



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.028 c
15-1147950751
Kolan
2006-05-18 15:12
2006.06.11
Вы заметили как быстро изменилось отношение к вете "Начинающим"


2-1148178304
Мурзилка
2006-05-21 06:25
2006.06.11
запрет на нажатие клавиши


8-1136978358
DVM
2006-01-11 14:19
2006.06.11
Загрузка JPEG из памяти в TBitmap. Как?


15-1147636626
Gero_
2006-05-14 23:57
2006.06.11
Вопрос к пользователям клиентских программ для форума


2-1148575203
fast2
2006-05-25 20:40
2006.06.11
Что мне надо доустановить на Вин98, чтоб можна было...




   Наверх