2011-05-11 3 views
0

Я работаю над библиотекой для службы обмена сообщениями .NET.События и потоки в программе на основе сокетов

У него есть подключение к основному серверу уведомлений и подключение к сеансу обмена мгновенными сообщениями. Все обрабатываются с использованием асинхронных методов Begin/End.

В настоящее время события для пользователя библиотеки (т. Е. MessageReceieved) вызываются внутри потока обратного вызова чтения (хотя и пересекаются через несколько разных уровней ... разбор сообщений, а что нет).

Это прекрасно, это просто означает, что пользователь библиотеки должен быть осторожным. Например, операция блокировки внутри одного из обработчиков событий остановит получение любых данных.

Это приемлемый/стандартный способ делать что-то? Я мог бы легко поднять события в потоке threadpool, если это необходимо.

ответ

0

В конце концов я решил, что это приемлемо. Вы увидите ту же проблему с Windows Forms. Например, если вы выполняете операцию блокировки в обработчике события Clicked, вся форма блокируется.

Смежные вопросы