【问题标题】:Events and threads in a socket based program基于套接字的程序中的事件和线程
【发布时间】:2012-04-11 05:08:50
【问题描述】:

我正在为 .NET messenger 服务开发一个库。

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

目前,在读取回调线程中调用库用户的事件(即 MessageReceieved)(尽管要遍历几个不同的层......消息解析等等)。

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

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

【问题讨论】:

    标签: c# .net events sockets


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多