| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Дождаться завершения потока |
| Автор: mekhanikus 15.5.2011, 02:24 | ||||||
В основной программе создаю поток:
Поток выводит в трей иконку. Иногда поток выводит сообщения ввиде MessageBox. При закрытии основной программы посылаю в тред месседж о завершении работы:
и жду его завершения:
Поток завершает работу, в том числе убирает иконку из трея. Все хорошо, если нет открытых МесседжБоксов созданых потоком. В этом случае основная программа завершается, а в трее остается иконка, которая ни на что не реагирует. Вопрос - как этого избежать? |
| Автор: ASMatic 15.5.2011, 13:03 |
| WaitForSingleObject( 3000 ); if (ERROR_TIMEOUT) TerminateThread(); мож так получится.. |
| Автор: mekhanikus 15.5.2011, 14:35 |
| Взглянул трезвым взглядом на код, и, кажется, я понял в чем ошибка. Wait честно ждет завершения процесса, просто мой TRD_EXIT не всегда доходит до цели. Буду курить в эту сторону. |
| Автор: mekhanikus 16.5.2011, 14:56 |
| Немного подкорректировал код. Теперь вроде все работает как надо. Вперед! навстречу новым багам. |