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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
8-49649
kill_john
2003-09-15 09:41
2004.01.16
Как сохранить текущий кадр


3-49470
ВК
2003-12-21 00:51
2004.01.16
Как получить индекс самой последней записи в таблице при использо


14-49707
Radionov Alexey
2003-12-25 09:31
2004.01.16
Спам. Теперь с кандидатом в президенты


7-49774
John Kayfolom
2003-11-04 10:11
2004.01.16
Пример написания сервиса (TService)


14-49694
НовичокНаФоруме
2003-12-26 10:35
2004.01.16
Win XP with SP1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский