Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Как дождаться завершения потока.   Найти похожие ветки 

 
stone ©   (2002-12-09 14:43) [0]

Выполняется процедура:
procedure TForm1.Button1Click(Sender: TObject);
var
MyThread : TMyThread;
begin
MyThread := TMyThread.Create(false);
... {другие действия}
ShowMessage("Готово");
end;

как мне дождаться завершения потока и лишь после этого выполнить {другие действия}?


 
Digitman ©   (2002-12-09 15:03) [1]

см. метод TThread.WaitFor


 
VaS ©   (2002-12-09 15:16) [2]

В Делфи6 метод WaitFor корректно работает только при FreeOnTerminate = false. Иначе деструктор вызывается до завершения WaitFor и получаем OS Exception "Invalid Handle".
Верный код:

MyThread:=TMyThread.Create(false);
MyThread.WaitFor;
FreeAndNil(MyThread);
ShowMessage("Готово");


 
han_malign ©   (2002-12-09 15:22) [3]

или так - WaitForSingleObject(MyThread.Handle,INFINITE);
When a thread terminates, the thread object attains a signaled state, satisfying any threads that were waiting on the object.


 
stone ©   (2002-12-09 15:26) [4]

2 VaS © (09.12.02 15:16)
> MyThread.WaitFor;
- здесь полностью останавливается выполнение последующего кода.


 
VaS ©   (2002-12-09 15:27) [5]


MyThread:=TMyThread.Create(false);

//много-много других действий

MyThread.WaitFor;
FreeAndNil(MyThread);
ShowMessage("Готово");




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

Текущий архив: 2002.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-61486
Larisa
2002-12-01 23:37
2002.12.19
Подскажите, пожалуйста, как правильно написать SQL запрос.


14-61778
DN
2002-11-27 17:26
2002.12.19
Включение BDE в дистрибутив


3-61422
Юра
2002-11-28 20:23
2002.12.19
масштабируемость DB-Grida


1-61516
stub
2002-12-09 08:49
2002.12.19
у кого есть примеры создания граф. движка рисования схем сетей?


1-61572
dvm_mail
2002-12-10 04:27
2002.12.19
Колонки в ListBox-e