while (true) {
.... //线程同步           
      receive.WaitOne(); <---这写啥子哦,用了 还让他等BeginReceiveFrom 就没必要再用while true

解决方案 »

  1.   

    this.m_OnReceive = new AsyncCallback(this.OnReceive); private void InternalBeginReceive()
            {
                this.m_Socket.BeginReceive(this.m_RecvBuffer, 0, this.m_RecvBuffer.Length, SocketFlags.None, this.m_OnReceive, this.m_Socket);
    #endif
            }  private void OnReceive(object sender, SocketAsyncEventArgs e)
            {
                if (e.LastOperation == SocketAsyncOperation.Receive && e.SocketError == SocketError.Success)// && e.BytesTransferred > 0
                {
     
                      //这里接收数据包后
                          //继续执行BeginReceive
                      this.InternalBeginReceive();
                }
          }
    Socket 连接后 就执行 this.InternalBeginReceive(); 这样根本不存在延时,要延时也就是网终延时,而不是Socket的问题