Вниз
Скачать: CL | DM;

Вопрос по WSAWaitForMultipleEvents   Найти похожие ветки 

 
FireMan_Alexey ©   (2004-04-26 12:51) [0]

Ув. мастера!
Не могли бы подсказать, как можно определить какое событие происходит 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;


 
Digitman ©   (2004-04-26 12:53) [1]

WSAEnumNetworkEvents


 
FireMan_Alexey ©   (2004-04-27 13:28) [2]

>Digitman
Спасибо!


 
FireMan_Alexey ©   (2004-04-30 09:33) [3]

>Digitman
Еще созрел вопрос о функциях MsgWaitForMultipleObjects и WSAWaitForMultipleEvents.
Я вычитал в старых форумах, что Вы предлагали использовать первую функцию, а не вторую. Так же покопался в Хелпе и обнаружил что функция MsgWaitForMultipleObjects возращает значения WAIT_ABANDONED_0+(Кол-во Event-тов)-1 если, как я понял из словаря мое событие "Выброшено". Вопрос состоит в том, что значит "Выброшено" и как на него реагировать? Да и чего я не получу если создам отдельный поток и буду использовать функцию WSAWaitForMultipleEvents?


 
Polevi ©   (2004-04-30 09:39) [4]

>Да и чего я не получу
WSAWaitForMultipleEvents ожидает только Event объекты, а MsgWaitForMultipleObjects возвращает управление также при наличии сообщения в очереди потока, посланного напрмер с помощью PostThreadMessage - очень удобный механизм межпоточного взаимодействия


 
FireMan_Alexey ©   (2004-04-30 09:58) [5]

>Polevi
Спасибо за ответ, я понимаю, что я в первом случае буду получать больше сообщений. А не подскажешь, что такое WAIT_ABANDONED_0?


 
Verg ©   (2004-04-30 10:31) [6]

Смтуация с ABANDONED связана с тем, что один из объектов был mutex и он не был освобожден (ReleaseMutex) каким-либо захватившим его потоком, а этот поток завершился.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
1-1086703288
Tack83
2004-06-08 18:01
2004.06.20
Вызов DLL, написанной в C++


3-1085649493
Pul
2004-05-27 13:18
2004.06.20
Репликация структуры базы


14-1086088134
miwa
2004-06-01 15:08
2004.06.20
Проведите ликбез по криптографии, пожалуйста


1-1086581187
SkyRanger
2004-06-07 08:06
2004.06.20
Запись в файл


3-1085643217
Kraw
2004-05-27 11:33
2004.06.20
Программирование TDBGrid




   Наверх