网络编程问题

lierisme 2005-12-01 09:15:11
使用UdpClient,如何处理同步的问题??

while (true)
{
remote = new IPEndPoint(IPAddress.Any,0);
data = localSocket.Receive(ref remote);
Thread newThread = new Thread(new ThreadStart(ManageThread));
newThread.IsBackground = true;
newThread.Start();
}

ManageThread里会使用到data,同时又不能妨碍程序继续接受新的数据
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lierisme 2005-12-01
  • 打赏
  • 举报
回复
我设置一个全局的bool变量用来标记是否可以继续创建新线程,然后在主线程中判断这个标记,不过不可以的话,就不停的判断;如果可以的话,就创建接收数据的数据处理线程;在数据处理线程里,首先将标记置为false,然后就Receive,只要收到了数据,就再将标记置为true.

行得通吗?
zhgroup 2005-12-01
  • 打赏
  • 举报
回复
可以用队列来进行处理,先将接收到的数据存储到队列中,然后用线程处理队列中的数据,这样每个线程都同是处理不同的数据
lierisme 2005-12-01
  • 打赏
  • 举报
回复
YAOHE(吆喝)
如果把接收数据放到数据处理线程中去,那岂不就会不停的创建线程?
hxhbluestar 2005-12-01
  • 打赏
  • 举报
回复
同一个UdpClient是可以面向多个连接的,所以你提到的问题应该不会发生

可以先做做测试看看,是不是真的发生冲突了?
YAOHE 2005-12-01
  • 打赏
  • 举报
回复
把接收数据放到数据处理线程中去

110,536

社区成员

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

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

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