C# 如何同时运行2个异步函数
我需要知道如何同时运行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
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然后查看我的更新