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

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

вопрос про потоки и модальные формы


Страницы:   1 2

Starkom ©   (2002-04-18 09:34:00) 

есть простенький код:
var
Form1: TForm1;
Thread:SecThread;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Thread:=SecThread.Create(false);
Thread.FreeOnTerminate:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Thread.Suspend;
end;

...

procedure SecThread.Execute;
begin
Form2:=TForm3.Create(Form1);
Form2.Caption:="Thread";
Form2.ShowModal;
Form2.Free;
end;

Фактически кода больше нет. Так вот, при Thread.Suspend; приложение капитально повисает! Объясните, плиз, что делать!


kull   (2002-04-18 11:58:00) [21]

С формами в потоке, я думаю все тоньше - это уже системный уровень.

Системные события обрабатывает главный поток (если только системе не указать что-то дополнительно).

И при создании формы , думаю что в Delphi окна создаются при главном потоке.

Так какая цель создания формы в другом потоке?


Shaman_Naydak   (2002-04-18 11:45:00) [22]

VCL писали без поддержки многопоточности.. Потому-то и геморр, особенно с таким хрупким методом как ShowModal (исходники посмотрите)


Digitman   (2002-04-18 11:36:00) [23]

Где синхронизация методов конструирования формы и обращения к методам формы в процедуре Execute() ?


kull   (2002-04-18 11:11:00) [24]

А зачем создавать модально форму не в главном потоке.


Starkom   (2002-04-18 10:56:00) [25]

2 kull:
дело в том, что до суспенда я могу свободно переключаться на Form1, хотя Form2 и модальная. А после суспенда приложение, вообще, не реагирует ни на что.


kull   (2002-04-18 10:39:00) [26]

Я так думаю, Suspend приостанавливает поток и модальная форма перестает обрабатывать события до тех пор пока поток не отпустишь (Resume).


Страницы:   1 2

Наверх

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