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

Вниз

Потоки...(очереди сообщений)   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
2-1171621980
Tolibas
2007-02-16 13:33
2007.03.04
fsMDIForm - > fsMDIChild -> fsNormal


2-1171534961
АЮН
2007-02-15 13:22
2007.03.04
Возврат значения при закрытии программы во внешнюю программу


15-1170678001
novill
2007-02-05 15:20
2007.03.04
Простая задача по математике, не могу решить :(


15-1170959855
Курдль
2007-02-08 21:37
2007.03.04
Нуждаюсь в советах по КПК


6-1159376066
SanJouK
2006-09-27 20:54
2007.03.04
Как отслеживать кол-во скачанных мегабайт с инета ?