using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
public static async Task Main(string[] args)
Console.WriteLine(await TimeStepAsync(async() => await ContextSwitch(10)));
Console.WriteLine(await TimeStepAsync(() => ContextSwitch(10)));
public static async Task<int> TimeStepAsync(Func<Task> func){
var start = DateTimeOffset.Now;
Console.WriteLine("starting method");
Console.WriteLine("done with method");
var end = DateTimeOffset.Now;
return (end-start).Milliseconds;
public static async Task ContextSwitch(int ct){
Console.WriteLine($"- iteration {i}");