首页 新闻 会员 周边

如何在主线程中关闭UdpClient

0
悬赏园豆:10 [已解决问题] 解决于 2010-05-17 12:33

在一个线程中使用了UdpClient.Receive()方法的,怎样在主线程把它结束  

部分代码:

while (true)
{
try
{

receiveBytes
= udpReceive.Receive(ref iep);

}

在主线程中写

 this.udpReceive.Close();
 Application.ExitThread();
 Application.Exit();

都会引发异常,怎么办?请大家帮,谢谢了...

问题补充: 接收消息错误!System.ObjectDisposedException:无法访问已释放的对象。 对象名:"System.Net.Sockets.UdpClient". 位置:就是上面代码中: receiveBytes = udpReceive.Receive(ref iep);的位置
hahacjh的主页 hahacjh | 初学一级 | 园豆:170
提问于:2010-05-03 11:30
< >
分享
最佳答案
0

把异常信息贴出来,我看看

我看了一下,这个异常应该是正常的,因为你在其他线程中关闭了这个 socket 链接,只要这个异常可以捕获,就没有问题。

ExceptionCondition
ObjectDisposedException

The underlying Socket has been closed.

 

 

这是MSDN中拷贝下来的,你可以看到,这里就是这么设计的。

收获园豆:10
eaglet | 专家六级 |园豆:17139 | 2010-05-04 07:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册