Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Как узнать завершения потока? По окончанию сделать Showmessage...   Найти похожие ветки 

 
mmms   (2007-02-02 10:15) [0]

Здравствуйте! Такое дело, есть простенький поток:

type
 TGoThread = class(TThread)
 private
   { Private declarations }
 protected
   procedure Execute; override;
 end;


в основной форме:
 private
   GT: TGoThread;


Тут же по кнопке его создаю:
    GT := TGoThread.Create(False);     // start
    GT.FreeOnTerminate := True;


Выполняется код:
procedure TGoThread.Execute;
begin
//работа по обработке
end;


Все Ок, но вот как бы узнать окончание потока? Если Showmessage вставлю в сам поток в TGoThread.Execute, в самый конец, то сработает, но это конечно не правильно, да и Showmessage не модальное сообщение, и если на форму кликнуть, оно скроется за ней.. Вот и весь вопрос, заранее благодарю за ответ.


 
Рамиль ©   (2007-02-02 10:18) [1]

OnTerminate
Трудно справку внимательно прочитать?


 
JFK&MM_extramarital_son   (2007-02-02 10:18) [2]

PostMessage(SomeVCLWindowHandle,YourMessage,WParam,LParam)


 
brother ©   (2007-02-02 10:19) [3]

ну пикни писи спикером на худой конец....)
этож для отладки надо? потом уберешь!)
писи спикер форева!


 
brother ©   (2007-02-02 10:20) [4]

а.... ну конеш на событие OnTerminate )


 
mmms   (2007-02-02 10:23) [5]

OnTerminate
Все понял, спасибо :)


 
Сергей М. ©   (2007-02-02 10:24) [6]


> Как узнать завершения потока?


WaitForSingleObject, MsgWaitForMultipleObjects


 
Сергей М. ©   (2007-02-02 10:28) [7]

OnTerminate - это не событие завершения потока, это событие завершения выполнения метода Execute() в потоке.


 
Рамиль ©   (2007-02-02 10:32) [8]


> Сергей М. ©   (02.02.07 10:28) [7]

Сомневаюсь, что автору нужны такие тонкости.


 
Рамиль ©   (2007-02-02 10:32) [9]

Тем более, что
GT.FreeOnTerminate := True;


 
Сергей М. ©   (2007-02-02 10:38) [10]


> Рамиль ©   (02.02.07 10:32) [8]


Следует понимать суть происходящего, иначе грабли неминуемы.


 
Kolan ©   (2007-02-02 14:02) [11]

Потоки лучьше отлаживать логом.


 
Сергей М. ©   (2007-02-02 14:28) [12]


> Потоки лучьше отлаживать логом.
>


Отлаживать лучше отладчиком.
А логом отлаживают лузеры)


 
Аноним   (2007-02-03 00:50) [13]


> Сергей М. ©


К сожалению, IDE ощутимо глючит при отладке отладчиком в случае ,если брек-поинты срабатывали в более чем одном потоке.

поэтомму из лучше вообще не отлаживать )))


 
Германн ©   (2007-02-03 01:47) [14]


> Аноним   (03.02.07 00:50) [13]
>
>
> > Сергей М. ©
>
>
> К сожалению, IDE ощутимо глючит при отладке отладчиком в
> случае ,если брек-поинты срабатывали в более чем одном потоке.
>
>
> поэтомму из лучше вообще не отлаживать )))

Докажи сие удтверждение реальным примером! Тогда можно будет отделять "мух от котлет" и тогда можно будет спорить по существу !


 
Anatoly Podgoretsky ©   (2007-02-03 10:33) [15]

> Германн  (03.02.2007 01:47:14)  [14]

А чего там утверждать, так и есть

...
...
BP
...
...

при отладке будешь несколько раз попадать в BP и курсор будет дергаться по разным точкам, в зависимости от того, какой поток будет получать управление при следующим шаге.


 
Аноним   (2007-02-03 15:01) [16]


> Докажи сие удтверждение реальным примером! Тогда можно будет
> отделять "мух от котлет" и тогда можно будет спорить по
> существу !


Если я докажу релаьным примером, то есть приведу код, и опишу последовательность действий, приводящих к глюку со стопроцентной воспроизводимостью, спорить будет особо не о чем, потому что я буду просто прав и все.
Но я такой пример не приведу, ибо косяки там "плавающие" ,и зафиксировать их не так просто.
То есть спорить опять не о чем, потому что такой спор сводится к:
"глючит"
"ты врешь, не глючит"
"нет, это ты врешь, глючит"
"нет, ты врешь"
Ну и зачем такой спор нужен?  Какая истина родится в нем?


 
Kolan ©   (2007-02-03 17:28) [17]

«Отлаживать лучше отладчиком.»

Сразу видно что не часто ты отлаживал потоки отладчиком. Виснет так что ППЦ. Питер(кажется он) даже хитрый способ придумал для убивания среды&#133



Страницы: 1 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.04 c
1-1170060525
Express
2007-01-29 11:48
2007.03.25
Как динамически создать TStatusBar?


15-1172676204
Юрий Зотов
2007-02-28 18:23
2007.03.25
Вот так фокус !!!


2-1172959193
San1
2007-03-04 00:59
2007.03.25
EConvertError


3-1165578287
valwin
2006-12-08 14:44
2007.03.25
Доступ из Delphi к БД *.fdb т.е. FireBird через комп-ты Interbase


15-1172575892
Ksander
2007-02-27 14:31
2007.03.25
Помогите!!!