Re: полуOFF про RegisterWaitForSingleObject
От: Ovl Россия  
Дата: 20.09.06 09:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Запостил это сообщение в раздел Win32 но, ввиду невысокой активности этого раздела, продублировал тут.


А>Речь идет о Win32 API'шной функции

А>BOOL RegisterWaitForSingleObject(
А>PHANDLE phNewWaitObject, // адрес хендла объекта ожидания
А>HANDLE hObject, // хендл объекта
А>WAITORTIMERCALLBACK Callback, // функция обратного вызова
А>PVOID Context // произвольный параметр
А>ULONG dwMilliseconds, // таймаут
А>ULONG dwFlags // флаги
А>);

А>Если передать этой функции флаг WT_EXECUTEINWAITTHREAD, то, судя по описанию, функция обратного вызова будет вызвана в самом ожидающем потоке (т.е том потоке, который сделал вызов RegisterWaitForSingleObject).


А>Получается что вызывающий поток ОБЯЗАТЕЛЬНО ДОЛЖЕН иметь очередь сообщений?

А>Вызов будет синхронизован циклом выборки сообщений и, соответственно, в функции обратного вызова не нужно парить голову с защитой переменных от конкурентного доступа к переменнм.

А>Во всяком случае я не понимаю как для потока без очереди сообщений, сделавшего вызов RegisterWaitForSingleObject, может быть сделан callback-вызов исполняющийся в этом же потоке.


очередь сообщений будет автоматически создана при надобности, так что насчет этого пункта не волнуйся
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.