public void ReceiveMsg()
{
//開始異步接收
IAsyncResult IAR = udpReceiveClient。BeginRecevice(
新建AsyncCallback(ReceiveCallback),
udpReceiveState);
}
私有void receive callback(IAsyncResult IAR)
{
//繼續異步接收
receive msg();
//完成最後壹次異步接收EndReceive處理。
UdpState udpReceiveState = iar。AsyncState為UdpState
//……
}
應該指出的是:
1)套接字異步接收進程使用。net framework,線程池中的線程數量是有限的。
2)ReceiveMsg中的while(true)循環是多余的。
3)在3)ReceiveMsg中鎖定(this)是沒有意義的。
4)WaitOne,Sleep()都是多余的。