C# 如何同时运行2个异步函数

C# 如何同时运行2个异步函数,c#,windows-runtime,windows-store-apps,async-await,winrt-async,C#,Windows Runtime,Windows Store Apps,Async Await,Winrt Async,我需要知道如何同时运行2个异步函数,例如检查以下代码: public async Task<ResponseDataModel> DataDownload() { ResponseDataModel responseModel1 = await RequestManager.CreateRequest(postData); ResponseDataModel responseModel2 = await RequestManager.CreateRequest(postDat

我需要知道如何同时运行2个异步函数,例如检查以下代码:

public async Task<ResponseDataModel> DataDownload()
{
  ResponseDataModel responseModel1 = await RequestManager.CreateRequest(postData);
  ResponseDataModel responseModel2 = await RequestManager.CreateRequest(postData);

  //Wait here till both tasks complete. then return the result.

}
公共异步任务数据下载()
{
ResponseDataModel responseModel1=await RequestManager.CreateRequest(postData);
ResponseDataModel responseModel2=await RequestManager.CreateRequest(postData);
//在此处等待,直到两个任务都完成。然后返回结果。
}
这里我有2个按顺序运行的
CreateRequest()
方法。我想并行运行这两个函数,并在这两个函数的末尾返回结果。
如何实现这一点?

如果您只需要两个操作中的第一个结果,则可以通过调用这两个方法,同时等待两个任务和'Task.WhenAny:

public async Task<ResponseDataModel> DataDownloadAsync()
{
    var completedTask = await Task.WhenAny(
        RequestManager.CreateRequest(postData), 
        RequestManager.CreateRequest(postData));
    return await completedTask;
}
公共异步任务DataDownloadAsync() { var completedTask=wait Task.WhenAny( RequestManager.CreateRequest(postData), CreateRequest(postData)); 返回等待完成任务; }
Task.WhenAny
创建的任务将在所有提供的任务中的第一个任务完成时完成。它返回一个已完成的任务,以便您可以获得其结果

返回哪个结果?您有两个结果。是否要合并这些结果?或者两个都返回?假设第一个结果。@SurenSaluka然后查看我的更新