Re[3]: События из worker thread
От: Максим Алексейкин Россия  
Дата: 25.07.02 14:30
Оценка:
Здравствуйте bnk, Вы писали:

bnk>Здравствуйте Максим Алексейкин, Вы писали:


МА>>Event обрабатывается синхронно. Т.е. пока твой конрол и VB не обработали первый, второй евент не возникнет. Может как второй WM_MY не доходит до окна контрола?


bnk>Максим, проблема в том что второй евент возникает. Я проверял в дебаггере, ситуация следующая: Входит в обработчик WM_MY, запускается Fire_MY(..), после чего, не выходя из этого обработчика , входит в него повторно ха-ха и снова делает Fire_MY()

bnk>Происходит енто, я думаю, потому, что WM_MY's посылаются компоненту той самой 'worker thread' (асинхронно), а когда компонент ожидает 'окончания евета' в Fire_MY(), он радостно диспатчит все WM_xx, и входит в обработчик повторно.
bnk>В чем и вопрос, с какой стороны это безобразие можно объехать

Попробуй ограничить доступ к Fire_MY() при помощи критической секции. Т.е. пока не вернулся из первого евента не делать следующие.
Удачи.
ICQ #311116826
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.