Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Событие компонента по событию внутри дочернего потока   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
15-1162962849
Elen
2006-11-08 08:14
2006.11.26
Подскажите в сети литературу о PopUp меню


2-1162880926
Колобок
2006-11-07 09:28
2006.11.26
видимо прозрачная форма или что-то ещё


2-1163006560
Greenchel
2006-11-08 20:22
2006.11.26
Изменение файлов на сервере.


5-1143724023
AlexeyT
2006-03-30 17:07
2006.11.26
Ошибка при удалении ActiveX контрола


11-1139596592
rainstuff
2006-02-10 21:36
2006.11.26
MHTrackBar не работает в новых версиях KOL:(