使用自定义EventArgs提升事件而不会阻止,而不考虑结果

时间:2017-01-24 23:03:49

标签: c# events asynchronous

我正在编写一个小的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

我知道如果此事件的订阅者对每个新连接进行了一些冗长的处理,那么客户端将排队等待连接。

BeginInvokeEndInvoke似乎非常重视事件调用的结果,正如我所说,我不是照顾。

我正在阅读其他一些问题并注意到有些人建议使用新的任务,但这些答案不是被接受的,也不是最好的答案。

我该如何做到这一点?

我是一个&#34;糟糕的程序员&#34;忽略事件调用的结果? (这是不好的做法吗?)

谢谢!

0 个答案:

没有答案