using System.Threading.Tasks;
public static void Main() {
var r = GetCurrencyInfoAsync().Result;
public static async Task<int> GetCurrencyInfoAsync() {
var t1 = MakeGetRequestAsync("/thing1");
var t2 = MakeGetRequestAsync("/thing2");
return (await t1) + (await t2);
public static async Task<int> MakeGetRequestAsync(string thing){
if(thing.Contains("2")) {
await ThingThatWillBeAwaited(2);
await ThingThatWillBeAwaited(1);
public static async Task<int> ThingThatWillBeAwaited(int seconds) {
var end = DateTime.Now.AddSeconds(seconds);
while (DateTime.Now < end);