using System.Diagnostics;
using System.Threading.Tasks;
public static async Task Main()
Task.Run(async () => await d("Task.Run"));
TimedAsync("Timed Task.Run", (s) => Task.Run(async () => await d(s)));
TimedAsync("Timed inline",(s) => d(s));
private static async Task d(string s)
Console.WriteLine($"{s} ThreadId: {Thread.CurrentThread.ManagedThreadId}");
private static async Task TimedAsync(string s, Func<string, Task> f)
var sw = Stopwatch.GetTimestamp();
var elapsed = Stopwatch.GetElapsedTime(sw);
Console.WriteLine($"{s} elapsed: {elapsed}");