![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прикол с TThread
Separator © (2002-11-20 13:10:00)
type
TMyThread = class(TThread);
protected
procedure Work;
procedure Execute; override;
end;
var
Form1: TForm1;
MyThread: TMyThread;
implementation
procedure TMyThread.Work;
begin
//что-нибудь делаю, главное чтоб это делалось долго
end;
procedure TMyThread.Execute;
begin
repeat
Synchronize(Work);
until Terminated
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyThread:= TMyThread.Create(false)
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
MyThread.Terminate;
MyThread.Free;
end;
end;
Если Form1.Destroy происходи когда идет работа в процедуре Work, то приложение виснет. Почему?
Если убрать Synchronize, то тогда все нормально.
Separator (2002-11-20 13:17:00) [61]
> Form1.Release
Это что такое?
Skier (2002-11-20 13:13:00) [62]>Separator
Form1.Release ?