![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по WSAWaitForMultipleEvents [D6]
FireMan_Alexey © (2004-04-26 12:51:00)Ув. мастера!
Не могли бы подсказать, как можно определить какое событие происходит WSAWaitForMultipleEvents. Я не знаю как определить какое событие произошло!
Код:
Var
Socket:TSocket;
Event :TWSAEvent;
Result:Integer;
Begin
Event:=WSACreateEvent;
WSAEventSelect(Socket,Event,FD_CLOSE or FD_CONNECT or FD_READ or FD_WRITE);
While True Do
Begin
Result:=WSAWaitForMultipleEvents(1,Event,False,WSA_INFINITE,True);
....................
WSAResetEvent(Event);
End;
WSAEventClose(Event);
End;
Verg (2004-04-30 10:31:00) [1]Смтуация с ABANDONED связана с тем, что один из объектов был mutex и он не был освобожден (ReleaseMutex) каким-либо захватившим его потоком, а этот поток завершился.
FireMan_Alexey (2004-04-30 09:58:00) [2]>Polevi
Спасибо за ответ, я понимаю, что я в первом случае буду получать больше сообщений. А не подскажешь, что такое WAIT_ABANDONED_0?
Polevi (2004-04-30 09:39:00) [3]>Да и чего я не получу
WSAWaitForMultipleEvents ожидает только Event объекты, а MsgWaitForMultipleObjects возвращает управление также при наличии сообщения в очереди потока, посланного напрмер с помощью PostThreadMessage - очень удобный механизм межпоточного взаимодействия
FireMan_Alexey (2004-04-30 09:33:00) [4]>Digitman
Еще созрел вопрос о функциях MsgWaitForMultipleObjects и WSAWaitForMultipleEvents.
Я вычитал в старых форумах, что Вы предлагали использовать первую функцию, а не вторую. Так же покопался в Хелпе и обнаружил что функция MsgWaitForMultipleObjects возращает значения WAIT_ABANDONED_0+(Кол-во Event-тов)-1 если, как я понял из словаря мое событие "Выброшено". Вопрос состоит в том, что значит "Выброшено" и как на него реагировать? Да и чего я не получу если создам отдельный поток и буду использовать функцию WSAWaitForMultipleEvents?
FireMan_Alexey (2004-04-27 13:28:00) [5]>Digitman
Спасибо!
Digitman (2004-04-26 12:53:00) [6]WSAEnumNetworkEvents