using System.Threading.Tasks;
public static async Task Main()
Console.WriteLine("[{0:mm:ss}] Calling slow ass function...", DateTime.Now);
var t = SlowAssFunction();
Console.WriteLine("[{0:mm:ss}] Returned from slow ass function! But it's not complete yet.", DateTime.Now);
Console.WriteLine("[{0:mm:ss}] Done something else while the slow ass function is still running!", DateTime.Now);
Console.WriteLine("[{0:mm:ss}] Time to await it finally!", DateTime.Now);
Console.WriteLine("[{0:mm:ss}] Ah, the slow ass function is finally complete.", DateTime.Now);
public static async Task SlowAssFunction() { await Task.Delay(5000); }