Task.WaitAll blocked, and when using await the async method will execute. To expect multiple tasks asynchronously, you can use Task.WhenAll :
public async Task DoSomething() { IEnumerable<Task> tds = SearchProcess(); await Task.WhenAll(tds);
source share