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