首页 新闻 会员 周边 捐助

异步操作的线程阻塞整个异步操作被阻塞?

0
[待解决问题]

代码如下:
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秒啊 不应该是整个异步操作啊 怎么一条数据都收不到啊 

fjqi1214的主页 fjqi1214 | 初学一级 | 园豆:181
提问于:2013-08-02 21:31
< >
分享
所有回答(1)
0

解决了 

fjqi1214 | 园豆:181 (初学一级) | 2013-08-05 14:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册