代码如下:
var sock= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sock.BeginReceive(buffer, 0, 1024, SocketFlags.None, i => {
var sock= (Socket)i.AsyncState;
int readNum=sock.EndReceive(i);
var reset= new AutoResetEvent(false);
Timer timer = new Timer({ Thread.Sleep(1000000000); rest.set() });
e.WaitOne(Timeout.Infinite);
time.Dispose();
} ,sock);
我有sock异步接受来接收数据 当有一个线程执行到endreceive时 初始一个自动时间 并且开始一个定时操作
定时操作在另一个线程中执行 当定时器线程执行一个耗时操作 比如1000秒 1000秒以后让endreceive这个线程来终止定时器 但是当我的endreceive线程执行到waitOne时 为什么整个异步操作都停止了1000秒 1000秒以后才恢复接受数据 在我的理解上应该只是阻塞一个线程1000秒啊 不应该是整个异步操作啊 怎么一条数据都收不到啊
解决了