Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Вниз

Как узнать завершения потока? По окончанию сделать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
2-1172740953
tia
2007-03-01 12:22
2007.03.25
DLL


2-1172740254
Riply
2007-03-01 12:10
2007.03.25
Утечка памяти при передаче нити дин. массива как параметра.


1-1170245684
alexey_mas
2007-01-31 15:14
2007.03.25
помогите с обработкой события в run-time


2-1172736641
ds120hp
2007-03-01 11:10
2007.03.25
Autocad


2-1172647396
Нуб
2007-02-28 10:23
2007.03.25
Button





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский