首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

循环里写异步操作适合吗

2014-01-22 
循环里写异步操作合适吗?本帖最后由 dota3c 于 2014-01-17 12:36:42 编辑没代码编辑器,我手打的,可能有错

循环里写异步操作合适吗?
本帖最后由 dota3c 于 2014-01-17 12:36:42 编辑 没代码编辑器,我手打的,可能有错误,大概就是这个意思。


byte[] buffer;
foreach ( User myUser in ListUser)
{
  //通过TcpClient.NetworkStream.BeginWrite 异步向每个用户发送一大段数据
  
myUser.BeginSendData(buffer);
//。。。。
//.....

}

这样写合适不?里面的发送数据操作会按着顺序执行吗?还是写成同步发送数据比较好?
[解决办法]
本帖最后由 caozhy 于 2014-01-17 13:29:49 编辑 循环不循环并不重要。
关键是你的逻辑。你需要先调用的先执行完或者控制同时并发的最大数量么?
[解决办法]
并发,但不稳定,执行的顺序相当于随机
[解决办法]
循环当然可以用异步,这样有避免主进程被阻塞的好处。你要看你每次发送的信息是不是互不干扰,如果是的话就可以异步,如果有存在需要前一个已发送下一个才能正确发送的情况,那就需要同步。一般来说,主进程有复杂操作时弄成异步都是正确的选择吧,。

热点排行