using System.Diagnostics;
using System.Threading.Tasks;
public static void Main(string[] args)
Console.WriteLine("GetData without unnecessary async/await: {0} ms", DoTest(count, () =>
Console.WriteLine("GetData with unnecessary async/await: {0} ms", DoTest(count, () =>
static Task<int[]> GetData()
return Task.Run<int[]>(() => Enumerable.Range(0, 100).ToArray());
static Task<int[]> GetData1()
static async Task<int[]> GetData2()
static long DoTest(int count, Action action)
var sw = Stopwatch.StartNew();
for (int i = 0; i < count; ++i)
return sw.ElapsedMilliseconds;