Async/await IV - Control of Execution in Async Programming

In asynchronous programming, understanding control of execution is just as important as knowing how to use await. You’re not just deferring work — you’re restructuring how your program flows, pausing and resuming logic across time and threads.

May 17, 2025 · 4 min · Hongzhu Cui

Async/await III - "Suspending" and "Blocking" in Async programming

In C# async programming, “block” and “suspend” refer to very different behaviors in how code waits for something to complete. In C#, await suspends the method without blocking the thread—that’s the magic of async/await.

May 16, 2025 · 5 min · Hongzhu Cui

Async/await II - Different ways of using aysnc/await

In async programming, there are several different approaches to handling asynchronous tasks beyond just immediate awaiting. Each approach is suited for different use cases depending on whether you need to wait for results, execute tasks in parallel, or handle exceptions.

May 4, 2025 · 4 min · Hongzhu Cui

Async/await I - Brief history of async/await

The async/await pattern was introduced to simplify asynchronous programming by making asynchronous code look and behave more like synchronous code. Here’s how it evolved across different programming languages.

May 3, 2025 · 3 min · Hongzhu Cui

Async/await under the hood

Comparison of await Implementation in C# and Python.

September 23, 2023 · 3 min · Hongzhu Cui