如何在c#中对2种不同的方法进行并行调用

时间:2017-11-17 06:08:07

标签: asp.net .net c#-4.0

我有2个方法getReponseFromDb()& getResponsefromthirdParty()以数据格式返回一些数据。我怎样才能使这个请求异步并等到它们都返回结果

 def count_vowels(string)
   string.count('aeiou')
 end

1 个答案:

答案 0 :(得分:0)

使用System.Threading.Tasks;

/ 保留所有任务的列表 /

    List<Task<DataTable>> AllTasks = new List<Task<DataTable>>();

/ 并行调用两个函数 /

    Task<DataTable> t1 = new Task<DataTable>(() => getReponseFromDb());

    Task<DataTable> t2 = new Task<DataTable>(() => getResponseFromthirdParty());
    AllTasks.Add(t1);
    AllTasks.Add(t2);
    t1.Start();
    t2.Start();

/ 等待所有任务完成 /

    Task.WhenAll(AllTasks).ContinueWith(task => ProcessResult(AllTasks));

注意:如果连接到同一个数据库,则使用不同的SqlConnection对象执行这两个任务,否则可能会出错!:)