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

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

Прикол с TThread


Страницы:   1 2 3 4

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 ?


Страницы:   1 2 3 4

Наверх

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