async void Demo() { "Waiting...".Dump(); Task<string> task = WaitSynch(2); for (int i = 0; i < 12; i++) { i.Dump(); Thread.Sleep(250); } var result = await task; result.Dump(); }