Аналог WSAAsyncSelect в пайпах???
От: AviSergey  
Дата: 26.09.09 20:15
Оценка:
Всем, Добрый вечер!
У меня имеется следующий острый вопрос. При передачи данных посредством именованных каналов в асинхронном режиме возможно ли организовать событийную реакцию на обработку состояний канала?
Есть ли механизм отслеживания готовности данных в канале для считывания, подобный функции
WSAAsyncSelect в реализации сокетов. ???
Заранее благодарен.
Re: Аналог WSAAsyncSelect в пайпах???
От: Мизантроп  
Дата: 27.09.09 04:21
Оценка:
Здравствуйте, AviSergey, Вы писали:

AS>Всем, Добрый вечер!

AS>У меня имеется следующий острый вопрос. При передачи данных посредством именованных каналов в асинхронном режиме возможно ли организовать событийную реакцию на обработку состояний канала?
AS>Есть ли механизм отслеживания готовности данных в канале для считывания, подобный функции
AS>WSAAsyncSelect в реализации сокетов. ???
AS>Заранее благодарен.

Вы имеете в виду, извещать Ваш код автоматической посылкой оконных сообщений? Нет, но при желании это можно эмулировать. Я так понимаю, речь идёт о реализации клиентского конца? Потому как в использовании той-же WSAAsyncSelect на сервере смысла нет, из-за "тяжеловесности" этого механизма.

Пайпы в этом плане ничем не отличаются от любого другого файлового устройства. Для клиента можно воспользоваться MsgWaitForMultipleObjects с "локальной" петлёй сообщений. Либо отдельным потоком, из которого посылать сообщения UI-потоку. Или даже пулом, своим или системным, или Completion port, хотя на клиенте в этом очень редко есть смысл. Однако не стоит слишком жёстко связывать транспортный уровень с остальными.
"Нормальные герои всегда идут в обход!"
Re[2]: Аналог WSAAsyncSelect в пайпах???
От: AviSergey  
Дата: 29.09.09 10:57
Оценка:
Здравствуйте, Мизантроп, Вы писали:

М>Здравствуйте, AviSergey, Вы писали:


М>Вы имеете в виду, извещать Ваш код автоматической посылкой оконных сообщений? Нет, но при желании это можно эмулировать. Я так понимаю, речь идёт о реализации клиентского конца? Потому как в использовании той-же WSAAsyncSelect на сервере смысла нет, из-за "тяжеловесности" этого механизма.


М>Пайпы в этом плане ничем не отличаются от любого другого файлового устройства. Для клиента можно воспользоваться MsgWaitForMultipleObjects с "локальной" петлёй сообщений. Либо отдельным потоком, из которого посылать сообщения UI-потоку. Или даже пулом, своим или системным, или Completion port, хотя на клиенте в этом очень редко есть смысл. Однако не стоит слишком жёстко связывать транспортный уровень с остальными.


Спасибо за комментарий.
Данный вопрос я тоже решил организацией отделного покока, из к-го основной поток с оконной процедурой и получает управляющие сообщения о состоянии канала)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.