C# for循环执行异步操作asyncMethod方法回调有关问题

C# for循环执行异步操作asyncMethod方法回调问题
本帖最后由 ji_xiang 于 2014-02-25 10:00:03 编辑
C# for循环执行异步操作asyncMethod1方法时,每次循环执行的完成先后顺序是不确定的,有没有办法获取最后执行完成的操作,因为我想在最后一个完成时再去执行另外一个异步方法。

下面是我有问题的代码模型:

DataTable dt = 数据源;
for(int i=0; i<dt.Rows.Count;i++){
     //循环调用异步方法1,并传参
     asyncMethod1(dt.rows[i]);
    
     //最后完成时执行异步方法2,并传参
     if(i==dt.rows.count){
             asyncMethod2(dt.rows[i]);
     }
}

------解决方案--------------------
把你asyncMethod1方法的代码贴出来看看
------解决方案--------------------
那我觉得你的第二个方法做成同步执行的就好了
------解决方案--------------------
引用:
Quote: 引用:

那我觉得你的第二个方法做成同步执行的就好了


我现在的问题是:asyncMethod1正常都执行了,可是asyncMethod2没有想我想像那样到最后执行一遍,而是asyncMethod2被循环多次执行。

那你写在循环外边啊
------解决方案--------------------
把前面的方法搞成同步的  然后在循环外面调用asyncMethod2
------解决方案--------------------
引用:
Quote: 引用:

把你asyncMethod1方法的代码贴出来看看

这我这里的代码不重要吧。没办法贴全。我觉得应该是我的这种模型写法有问题。

我是在想 能不能在你的asyncMethod1里面搞个什么标识该方法已执行完毕  然后判断