using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Console.WriteLine("Start");
var srvc = new Service();
srvc.ConsumeSingleAsync().Wait();
srvc.ConsumeWithWhenAllAsync().Wait();
Console.WriteLine("Done");
public async Task ConsumeWithWhenAllAsync()
var taskOne = _dal.GetDatesAsync();
var taskTwo = _dal.GetDatesAsync();
await Task.WhenAll(taskOne, taskTwo);
Console.WriteLine("Task One Results");
foreach (var date in taskOne.Result)
Console.WriteLine("Task Two Results");
foreach (var date in taskTwo.Result)
public async Task ConsumeSingleAsync()
var task = _dal.GetDatesAsync();
await Task.WhenAll(task);
Console.WriteLine("Task Results");
foreach (var date in task.Result)
public Task<IEnumerable<DateTime>> GetDatesAsync()
return Task.FromResult<IEnumerable<DateTime>>(new[]
DateTime.Now, DateTime.Now.AddDays(1), DateTime.Now.AddDays(2), DateTime.Now.AddDays(3)