![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить существует ли поток...
Tempora © (2006-05-22 18:07:00)Есть два потока. В одноим из потоков должна идти обработка которая требует результатов из другого потока.
Как убедиться перед запуском обработки что второй поток закончил свою работу (свое выполнение)? И если не закончил, то дождаться его?
begin...end (2006-05-22 18:18:00) [1]> Как проверить существует ли поток...
GetExitCodeThread
Leonid Troyanovsky (2006-05-22 18:15:00) [2]
> TUser © (22.05.06 18:10) [1]
> Воспользоваться встроенными в Windows средствами синхронизации
> - например, создать в потоке мьютекс
А зачем мьютекс? Можно использовать хендл самого потока.
--
Regards, LVT.
Eraser (2006-05-22 18:13:00) [3]
> 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
TUser (2006-05-22 18:10:00) [4]Проверить флаг TThread.Terminated
while not YourThread.Terminated do sleep(1000);
Воспользоваться встроенными в Windows средствами синхронизации - например, создать в потоке мьютекс и вызвать подождать его освобождения. Подробно этот вопрос описан, например, в книге Рихтера.