using System.Threading.Tasks;
public static async Task<int> GetValue1()
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
return await Task.FromResult(100500);
public static async Task<int> GetValue2()
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
public static Task<int> GetValue3()
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
return Task.Run(() => 500100);
public static async Task Main(string[] args)
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
var val1 = await GetValue1();
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
var val2 = await GetValue2();
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
var val3 = await GetValue3();
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);