Home How does async-await allow for responsiveness in an application that uses an event loop, such as Windows Forms?
 As I understand, UI applications have a main thread that has a loop equivalent to while(true) { var e = events.Dequeue(); // get event from the queue e(); // run event }  I'm confused about e() will be "unblocked" if it is at the top of an async-await chain. Let's say that e() eventually calls public async Task WaitOneSecondAsync() { await Task.Delay(1000); Console.WriteLine("Done waiting 1 second!"); }  Once the main thread hits await Task.Delay(1000); it won't "move on" to the next iteration of the while loop. So can you explain how this unblocks? Perhaps with a code sample?