This example shows an async method CountAsync that yields numbers 1 to 3 with a 1-second delay before each yield. The execution table traces each step: starting the loop, delaying, yielding a value, and the caller awaiting that value. Variables like 'i' change from 0 to 4 as the loop progresses. Key moments clarify why the caller waits after each yield, what happens when the loop ends, and why Task.Delay is used. The visual quiz tests understanding of yielded values, completion step, and effect of removing delay. Async streams let you produce data asynchronously, making it easy to handle sequences that take time to generate.