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

Вниз

Как узнать когда завершиться поток?   Найти похожие ветки 

 
aser   (2004-01-04 10:26) [0]

Я создаю поток с помощью ф-ии

h:=CreateThread(nil,0,@FNC,@par,0,ThreadID);

Как мне отоить его завершение? Я так понимаю что нужно делать ловушку с помощью SetWindowsHookEx. Но только что-то не найду ни как на какое событие она(hook) должна реагировать?
Подскажите, плз, какое событие (типа WM_...) или как по другому отловить завершение потока?


 
Rimd   (2004-01-04 11:08) [1]

За чем тебе ловушка? регистрируй какое нить сообщение и отправляй его при завершении твоей @FNC


 
aser   (2004-01-04 11:18) [2]

Мне не удобно изменять ф-ю,т.к. она как вариант будет ещё использоваться совсем не в отдельном потоке.
А писать еще одну ф-ю в качестве "прослойки" между моей ф-ей и ф-ей для потока я бы тоже не хотел.


 
Rimd   (2004-01-04 11:28) [3]

Все просто! Заделай какую нить глобальную переменную и управля с помощью ее. К примеру если переменная True значит посылаем сообщение, если иначе то нет. И когда вызываешь свой тред пиши что она True, после того как из функции треда пошлешь сообщение пиши что она False. Все просто!


 
aser   (2004-01-04 11:38) [4]

Спасибо, конечно за совет! Может так и сделаю. Но интересно было бы отловить завершение потока. В Delphi в окне Thread Status <Shift+Ctrl+T> отлавливается как-то старт и завершение потоков. В тоже время WinSight32 почему то нет :-(. У меня создается впечатение что я запутался :-(


 
Ihor Osov'yak ©   (2004-01-04 12:46) [5]

WaitForSingleObject не выручит?

Один из вариантов
case WaitForSingleObject(h, 0) of
WAIT_OBJECT_0: ShowMessage("Дело сделано");
WAIT_TIMEOUT: ShowMessage("В процессе");
else ShowMessage("Не все нормально в королевства датском..");
end;

если же просто ждать окончания потока до одурения:
WaitForSingleObject(h, INFINITE);

Ps - писалось по памяти, возможны опячатки...


 
aser   (2004-01-04 12:57) [6]

Да. Это уже выручило. Спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.031 c
14-49693
ИдиотЪ
2003-12-26 11:54
2004.01.16
снова глюк


4-49803
Erik
2003-11-10 16:49
2004.01.16
Получение лога состояния кнопок в чужом приложении.


3-49406
Rem
2003-12-18 17:11
2004.01.16
Снятие аттрибута ReadOnly с полей в TClientDataSet


3-49393
Ermek
2003-12-19 01:52
2004.01.16
расширением стандартного компонента Ole Container


1-49486
Vl_
2004-01-03 20:34
2004.01.16
МАТРИЦЫ