/// <summary>开启异步接受新连接</summary> /// <param name="se"></param> /// <param name="io">是否IO线程</param> /// <returns>开启异步是否成功</returns> Boolean AcceptAsync(SocketAsyncEventArgs se, Boolean io) { if (!Active || Client == null) { se.TryDispose(); return(false); } var rs = false; try { //_Async = Server.BeginAcceptTcpClient(OnAccept, null); rs = Client.AcceptAsync(se); } catch (Exception ex) { if (!ex.IsDisposed()) { OnError("AcceptAsync", ex); } if (!io) { throw; } return(false); } if (!rs) { if (io) { ProcessAccept(se); } else { Task.Factory.StartNew(() => ProcessAccept(se)); } } return(true); }