Форум: "WinAPI";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];
ВнизПотоки...(очереди сообщений) Найти похожие ветки
← →
GanibalLector © (2006-10-18 18:05) [0]Господа,возник вопрос.
Есть некоторое приложение, которое имеет доп.поток. Общаюсь с доп.потоком посредством PostThreadMessage.
Также следует отметить,что основной поток имеет таймер (SetTimer), который через 100мсек. срабатывает и посылает доп.потоку некоторое сообщение(PostThreadMessage).
Так вот, доп.поток получил некоторое сообщение и начал выполнять определенную задачу(5-10 сек.) за это время срабатывал таймер и положил в очередь потока свои сообщения. А мне вот этого и не надо!
Думаю сделать так :
перед выполненим некоторой операции в доп.потоке я пошлю сообщение главному потоку. Главный приняв это сообшение выставит,например, некоторую переменную в False. При срабатывании таймера буду проверять эту переменную и если она False, то не буду ничего посылать. Соответственно,когда закончится длительная операция в доп.потоке,я пошлю главному потоку новое сообщение, приняв которое главный поток выставит ту переменную в True. И,соответственно,при срабатывании таймера сообщения теперь будут доходить.
Насколько оправдан мой подход? Может есть варианты получше???
Заранее спасибо.
← →
DVM © (2006-10-18 18:26) [1]
> Может есть варианты получше???
Может в дополнительном потоке сделать флаг FBusy: boolean; и проверять его состояние перед посылкой ему сообщения.
← →
Ketmar © (2006-10-18 18:51) [2]а не проще ли сделать Event "занят, не беспокоить!"?
← →
Leonid Troyanovsky © (2006-10-18 18:55) [3]
> Ketmar © (18.10.06 18:51) [2]
> а не проще ли сделать Event "занят, не беспокоить!"?
Тогда уж и все остальное сделать с помощью объектов ядра,
дабы не превращать рабочий поток в GUI thread.
--
Regards, LVT.
← →
Сергей М. © (2006-10-19 10:18) [4]
> GanibalLector © (18.10.06 18:05)
Использование обычной критической секции (вместо очереди сообщений) с успехом решит твою задачу.
← →
GanibalLector © (2006-10-19 10:50) [5]2 Сергей М. © (19.10.06 10:18) [4]
Я думал о этом ;)
Всем спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c