Re[5]: Потоки в ДЛЛ, когда надо их прибивать?
От: Игорь Вартанов Ниоткуда  
Дата: 24.03.03 10:38
Оценка:
Здравствуйте, Аноним, Вы писали:

KB>>А дочерним окнам не приходит чего-нибудь тривиального типа WM_CLOSE?


А>вся неприятность положения заключается в том, что окна создаваемые доп потоками они по первоначалу на длительный период времени заняты — там список заполняется здоровый (для чего в отдельный поток и вынесены), соответственно они вообще сообщения не обрабатывают,


Смотрим дизайн MFC — один поток (главный, UI) крутит message loop и создает все оконные объекты, рабочие потоки поставляют данные визуальным контролам, о чем докладывают механизмами синхронизации. Здесь нужно сделать то же самое.

А>но при этом закрытие основного окна гасит потоки по любому и сразу, вне зависимости от того заполняется этот список или уже заполнен. соответственно WM_CLOSE не приходит,


Хэндлы потоков, похоже, закрываются, из чего система делает справедливый вывод, что их (потоки) смело можно грохнуть, ибо воспользоваться данными из них уже не представляется возможным.

А>я то хотел найти момент когда доп окна гасят и поставить там какой-нибудь event,


Потоки должны тогда регулярно проверяться на предмет этого event'а (речь именно о событии, а не посылке оконного сообщения).

А> чтобы выскочить из процедуры заполнения списка, и нормально закончится, а момент этот все-таки, наверное, можно поймать только в ExitInstance основного приложения, потом уже поздно пить баржоми, система сама разбирается с моими потоками ....

А>Просто надеялся, что ошибюсь и можно как то измудриться и реализовать все внутри ДЛЛ, наверное, не выйдет

Ошибаешься. Можно. Внутри. Выйдет.
---
С уважением,
Игорь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.