异步套接字操作的行为如何?C#

异步套接字操作的行为如何?C#,c#,sockets,asynchronous,C#,Sockets,Asynchronous,首先,我接受套接字异步请求 if (!_handle.AcceptAsync(_item)) AcceptClient(null, _item); 像这样处理他们 private void AcceptClient(object s, SocketAsyncEventArgs e) { try { do { switch(e.SocketError)

首先,我接受套接字异步请求

if (!_handle.AcceptAsync(_item)) AcceptClient(null, _item);
像这样处理他们

private void AcceptClient(object s, SocketAsyncEventArgs e)
    {
        try
        {
            do
            {
                switch(e.SocketError)
                {
                    case SocketError.Success:
                        // Do something with socket
                        break;

                    case SocketError.ConnectionReset:
                        break;

                    default:
                        throw new Exception("Socket Error");
                }

                e.AcceptSocket = null;
            }
            while (!_handle.AcceptAsync(e));
        }
        catch(ObjectDisposedException)
        {
        }
        catch(Exception)
        {
            Disconnect();
        }
    }
所以,当套接字被异步接受时,它会在操作同步时循环。(立即处理下一个问题)不过我有几件事不明白

当假设20个客户端同时连接时,处理代码的行为如何?AcceptSync是否返回false,并且需要在第一个异步之后直接处理这些内容?在这样的实例中,一些是异步的,而另一些是同步的,可以同时处理多个实例吗

在这种情况下可以调用多个回调吗

谢谢