Форум: "Компоненты";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
ВнизСобытие компонента по событию внутри дочернего потока Найти похожие ветки
← →
Untermensch (2006-03-30 16:10) [0]А какие есть ещё способы получить сообщение от дочернего потока в основной кроме создания скрытого окна и хука основной очереди событий ? И какой способ лучше для работы внутри службы ?
← →
Сергей М. © (2006-03-31 10:07) [1]
> А какие есть ещё способы
А чем этот способ не устраивает ?
> какой способ лучше для работы внутри службы ?
Способ , при котором сообщения отправляются не окну, а самому потоку - см. PostThreadMesage.
← →
Юрий Зотов © (2006-04-01 11:18) [2]С событием, возбуждаемым из неглавного потока, надо быть аккуратным. Предположим, юзер написал обработчик такого события и в нем обрабатывает какие-то данные. Поток асинхронно возбудил событие, передал в него копию этих данных и пошел работать дальше, успев эти данные изменить. Потом исполнение перешло на главный поток и в нем сработал юзерский обработчик - а данные-то, которые он получил, уже устарели, в потоке они уже другие.
Ситуация может усложниться еще больше, если поток порождается компонентом. Сколько таких компонентов юзер накидает на форму - столько и потоков будет, а в результате может получиться полная каша.
В общем, всю эту кухню надо очень хорошо продумать и если неактуальность данных получается возможной, то лучше возбуждать событие синхронно, через Synchronize или SendMessage.
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.06 c