如果可能,Task.WhenAll 会同时执行任务吗?
Will Task.WhenAll perform tasks simultaneously if possible?
我的意思是如果我有两个任务 async Task<Data1> GetData1Async()
和 async Task<Data2> GetData2Async()
并且以这种方式做某事:
var getTask1 = GetData1Async();
var getTask2 = GetData2Async();
await Task.WhenAll(getTask1, getTask2);
var result1 = getTask1.Result;
var result2 = getTask2.Result;
GetData1Async
和 GetData2Async
是否有机会并行工作?
Task.WhenAll
只等待两个任务,不运行他们。
如果这两个方法 GetDataXAsync
是真正异步的,并且在调用 Task.WhenAll
时它们还没有完成,那么是的,它们将并行执行。
我的意思是如果我有两个任务 async Task<Data1> GetData1Async()
和 async Task<Data2> GetData2Async()
并且以这种方式做某事:
var getTask1 = GetData1Async();
var getTask2 = GetData2Async();
await Task.WhenAll(getTask1, getTask2);
var result1 = getTask1.Result;
var result2 = getTask2.Result;
GetData1Async
和 GetData2Async
是否有机会并行工作?
Task.WhenAll
只等待两个任务,不运行他们。
如果这两个方法 GetDataXAsync
是真正异步的,并且在调用 Task.WhenAll
时它们还没有完成,那么是的,它们将并行执行。