日期:2014-05-18  浏览次数:21338 次

BeginReceive
Socket通讯中 怎样强制关闭BeginReceive()开始的线程?

就是说,如果一个Socket通过BeginReceive开始了接受数据的过程,我怎样强行结束这一过程...


------解决方案--------------------
帮顶。。。。。
------解决方案--------------------
异步 BeginReceive 操作必须通过调用 EndReceive 方法来完成。通常,该方法由 callback 委托调用。

此方法在操作完成前不会进入阻止状态。若要一直阻塞到操作完成时为止,请使用 Receive 方法重载中的一个。

若要取消挂起的 BeginReceive,请调用 Close 方法。

有关使用异步编程模型的详细信息,请参见 使用异步方式调用同步方法。
转自MSDN
------解决方案--------------------
在不断的 死循环中
加一个bool 变量 
来判断 线程的状态
false 就 开始
true 就 停止

------解决方案--------------------
这就难了吧.异步是自动分的线程.怎么才能把分的线程找到呢.难吧.只要能找到就一定能把它关掉!
------解决方案--------------------
Begin是异步的,就是调用Begin开始处理后,就等着底层的Socket接收或者发送完数据后,才会触发CallbackMethod方法的。

你可以试着把Begin方法放在一个线程中,然后结束线程? 阿捷