I need to know how to run 2 async functions simultaneously, for an example check the following code:
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.
}
Here I have 2 CreateRequest()
methods which runs sequentially. I would like to run these 2 functions parallel and at the end of both functions I want to return the result.
How do I achieve this?
If you only need the first result out of the 2 operations you can so that by calling the 2 methods, and awaiting both tasks together with `Task.WhenAny:
public async Task<ResponseDataModel> DataDownloadAsync()
{
var completedTask = await Task.WhenAny(
RequestManager.CreateRequest(postData),
RequestManager.CreateRequest(postData));
return await completedTask;
}
Task.WhenAny
creates a task that will complete when the first task of all of the supplied tasks completed. It returns the one task that completed so you can get its result.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With