我正在用C#实现TCP服务器并使用队列来处理接收到的数据。也就是说,从异步接收回调,在线程安全队列结构中对事件进行排队,从主线程处理队列,弹出事件并通过执行一些逻辑操作来处理它,然后将数据发送回去。对于断开连接的回调,还会对相应的事件进行排队。但是,由于套接字已经断开连接,因此在发送数据时,将抛出异常。
我想知道是否有更好的方法可以在基于事件的框架中处理这种情况?
我可以在每次发送中使用尝试捕获,但它很丑陋。
您可以使发送非阻塞,在成功启动时返回成功,然后返回完成/失败事件。可能是一个包装器,所以只有一个尝试捕获。