基于套接字的程序中的事件和线程

时间:2011-05-11 08:07:48

标签: c# .net events sockets

我正在为.NET信使服务工作。

它与主通知服务器有连接,每个即时消息会话都有一个连接。全部使用Begin / End异步方法处理。

目前,库用户的事件(即.. MessageReceieved)在读回调线程中被调用(尽管遍历了几个不同的层..消息解析和什么不是。)

这很好,只是意味着图书馆用户必须小心。例如,其中一个事件处理程序内的阻塞操作将阻止接收任何数据。

这是可接受的/标准的做事方式吗?如有必要,我可以轻松地在线程池线程上引发事件。

1 个答案:

答案 0 :(得分:0)

最终我认为这是可以接受的。您将看到与Windows窗体相同的问题。例如,如果在Clicked事件处理程序中执行阻塞操作,则整个表单将锁定。