Shared C# Snippet
using System;
using System.Diagnostics;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var sw = Stopwatch.StartNew();
Console.WriteLine("Start");
var task1 = DoWorkAsync("A", 3000);
var task2 = DoWorkAsync("B", 2000);
var task3 = DoWorkAsync("C", 1000);
Console.WriteLine("Tasks created");
await task1;
await task2;
await task3;
Console.WriteLine($"Done in {sw.ElapsedMilliseconds} ms");
}
static async Task DoWorkAsync(string name, int delay)
{
Console.WriteLine($"{name} started");
await Task.Delay(delay);
Console.WriteLine($"{name} finished");
}
}