请教使用UDP异步收发数据时出现的“无法访问已释放的对象”错误?

KingYoungsun 2006-04-19 05:14:35
我在代码中使用UDP来异步收发数据,但收发语句部分总是提示“无法访问已释放的对象”,请问这是什么原因?代码在下面,请朋友们帮我看看
private void Start()
{
IPEndPoint ep = new IPEndPoint(IPAddress.Any, channel.Port);
while (true)
{
if (!usingSocket)
{
lock (udp)
{
AsyncCallback callback = new AsyncCallback(ReceiveCallback);
udp.BeginReceive(callback, ep);
usingSocket = true;
}
}
Thread.Sleep(0);
}
}
/// <summary>
/// 接收数据的回调方法
/// </summary>
/// <param name="ar"></param>
private void ReceiveCallback(IAsyncResult ar)
{
lock (udp)
{
IPEndPoint ep = (IPEndPoint)ar.AsyncState;
SomeData data = SomeHelper.ReadBytes(udp.EndReceive(ar, ref ep));
usingSocket = false;
SaveData(data);
}
}
...全文
315 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingYoungsun 2006-04-24
  • 打赏
  • 举报
回复
朋友们看一下哦
KingYoungsun 2006-04-23
  • 打赏
  • 举报
回复
up
KingYoungsun 2006-04-19
  • 打赏
  • 举报
回复
这个回调方法是没法Close的呀,它不是一个对象实例。
lovebanyi 2006-04-19
  • 打赏
  • 举报
回复
不清楚.顶.. 找找是不是有其它地方将它close了..

KingYoungsun 2006-04-19
  • 打赏
  • 举报
回复
就是udp.BeginReceive(callback, ep);这一句。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧