Здравствуйте, sadomovalex, Вы писали:
S>Здравствуйте, Daimond, Вы писали:
D>>Здравствуйте, akasoft, Вы писали:
A>>>Здравствуйте, Daimond, Вы писали:
D>>>>Как понять выполняется ли этот поток в данный момент или уже завершился и удалился?
A>>>Событие OnTerminate() потока.
A>>>A>>>Occurs after the thread's Execute method has returned and before the thread is destroyed.
D>>Поднимать там флаг... можно... А есть какие-нибудь другие способы?
S>Попробуй:
S>if (WaitForSingleObject(Modem->Handle, 0) == WAIT_OBJECT_0)
S>{
S>// поток завершился
S>}
S>else
S>{
S>}
дык человек вероятнее всего работает с установленым FreeOnTerminate, судя по диалогу выше
> А есть какие-нибудь другие способы?
Способов много. Два уже предложили. При использовании техники с WaitForSingleObject проследите с тем, чтобы не было установлено FreeOnTerminate, да не забудьте потом вызвать Free.
Я иногда использую технику посылки сообщения через PostMessage соотв. форме. PostMessage обычно ставлю в конце Execute (не территориального, по ходу выполнения естественно)