我正在编写一个小的TCP应用程序,我正在尝试创建赢得阻止程序执行的事件。
基本上,TCPCOnnection
类会引发一个事件ClientConnected
,并将关联的Socket
传递给任何事件订阅者。我希望TCPConnection
回过头来立即收听的新连接。此外,我不打算在本课程中对此活动进行任何错误处理,因此我不太关心回调以检查结果。
这是(简单)代码:
//Processes a new connection and immediately puts the listen socket back in a receiving state
private void ProcessAccept(SocketAsyncEventArgs e)
{
ClientConnected?.Invoke(this,
new Event.ClientConnectedEventArgs(e.AcceptSocket));
StartAccept();
}
#region Events
//Fired when a client connects
public event EventHandler<Event.ClientConnectedEventArgs> ClientConnected;
#endregion
我知道如果此事件的订阅者对每个新连接进行了一些冗长的处理,那么客户端将排队等待连接。
BeginInvoke
和EndInvoke
似乎非常重视事件调用的结果,正如我所说,我不是照顾。
我正在阅读其他一些问题并注意到有些人建议使用新的任务,但这些答案不是被接受的,也不是最好的答案。
我该如何做到这一点?
我是一个&#34;糟糕的程序员&#34;忽略事件调用的结果? (这是不好的做法吗?)
谢谢!