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

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

Приостановка выполнения процедуры, до завершения потока. [D7]


Страницы:   1 2

Draught ©   (2005-11-30 21:02:00) 

Доброго всем времени суток.

Столкнулся с такой ситуацией: при работе приложения для выполнения некоторых операций создается отдельный поток:

HThread:=CreateThread(nil,0,@ThreadFunc,nil,0,ThreadID);

после его выполнения результаты автоматически сохраняются в файл, реализовано это все в одной процедуре, по нажатию на кнопоку старта, выглядит примерно так:


procedure ButtonClick(Sender: TObject);
begin
...
HThread:=CreateThread(nil,0,@ThreadFunc,nil,0,ThreadID);
...
result_savetofile;
...
end;

где result_savetofile- процедура сохраниения результата в соответствующие файлы, в случае неудачи - сохранение соответствующей информации об этом...

Вопрос следующий: после создания отдельного потока требуется каким-либо образом приостанавливать дальнейшее выполнение процедуры, как это можно реализовать?


Набережных С.   (2005-12-01 08:48:00) [21]


> Draught

И нафига тогда поток, если его завершения ждать сразу после создания? Просто делай все внутри самой процедуры.


Draught   (2005-11-30 21:18:00) [22]

Можно использовать как вариант какой-нибудь флаг внутри выполняющегося потока, но может быть есть способ определять состояние потока и без дополнительного флага?


Draught   (2005-11-30 21:12:00) [23]

На самом деле все сводится к простому - каким образом можно выяснить завершился ли поток или все еще выполняется?


Страницы:   1 2

Наверх

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