|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2013, 14:35 | #1 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 25
|
Terminated в потомке класса TThread
Проблема такая: создал потомок класса TThread, запустил его из своей программы. Но как дождаться его завершения?
У меня в Execute идет основной бесконечный цикл, который прерывается при определенном внутреннем условии (в файле найдена определенная сигнатура, или конец файла достигнут). Но как основной программе узнать, что Execute завершен? Почему-то Terminated состояние из основной программы не доступно. Вызывается поток следующим образом: Код:
Решил проблему свойством потока OnTerminate. Последний раз редактировалось Dr. MefistO; 13.02.2013 в 15:36. |
13.02.2013, 15:46 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
13.02.2013, 15:58 | #3 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 25
|
Увы, нет. Т.к. программа висит до самого завершения потока. А надо как-бы апдейтить форму еще. Создавать поток, который запустит мой поток и будет его ждать?
|
13.02.2013, 16:04 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Зачем ждешь завершения?
Может достаточно будет обрабатывать его событие OnTerminate?
I'm learning to live...
|
13.02.2013, 16:10 | #5 |
Пользователь
Регистрация: 22.03.2009
Сообщений: 25
|
OnTerminate вариант не плохой, даже нормальный. Просто в процедуре вызова потока сканирования, где и объявлена переменная потока нужно вывести сообщение о времени, затраченном на работу потока. Делать это в самом потоке мне не подходит. А делать переменную потока в protected главной формы как-то не очень.
Сделал так, как на одном форуме вычитал. В public потока добавил строчку: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TThread. Почему нельзя выполнить start в конструкторе класса а resume можно? | Человек_Борща | Общие вопросы Delphi | 1 | 09.01.2013 19:44 |
C++. Как в классе-потомке несколько раз вызвать один и тот же конструктор из базового класса? | fly0f | Помощь студентам | 6 | 17.04.2012 01:49 |
При освобождении обьекта TThread, он вешает всю программу. При этом код Execute у TThread уж выполнился.. | Человек_Борща | Общие вопросы Delphi | 23 | 30.11.2011 09:18 |
Возврат значения из класса TThread | Alter | Общие вопросы Delphi | 1 | 27.12.2010 21:48 |
Метод Synchronize класса TThread | EdNovice | Общие вопросы Delphi | 10 | 01.08.2009 14:47 |