Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
ВнизКоллизии потоков Найти похожие ветки
← →
Grigory (2001-12-26 10:09) [0]Хочу узнать что происходит в таком случае:
поток 1 (главный поток программы) создаёт класс дочерний от TThread :
thread := Tmy_thread.Create;
затем выполняется оператор thread.Resume - запускается метод execute объекта thread в отдельном потоке.
После этого выполняется myForm.ShowModal; - приложение блокируется модальным окном.
В классе Tmy_thread на событие OnTerminate повешан следующий метод в котором закрывается модальное окно:
Выглядит всё это так:
Procedure Form1.onBtnClick (Sender: TObject);
begin
thread := Tmy_thread.Create;
thread.OnTerminate := doTerminateMyThread;
thread.Resume;
myForm.ShowModal;
end;
Procedure Form1.doTerminateMyThread (Sender: TObject);
begin
myForm.Close;
end;
вроде всё верно написано, вот только работает не так как хочется:
1 Окно myForm не закрывается после отработки процесса, пока не двинуть на нём мышкой !!!
2 После закрытия главного окна программы вылетает Exception :
"Win32 error. Code: 1440. Invalid window handle"
ПОЧЕМУ НЕ ЗАКРЫВАЕТСЯ ОКНО???!!!
И ОТКУДА БЕРЁТСЯ EXCEPTION???!!!
многовато получилось текста :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c