What problem does it solve? Writing asynchronous C# code correctly is error-prone: blocking on async code causes deadlocks, async void swallows exceptions, and missing cancellation support makes long-running operations unresponsive. This Skill provides proven patterns for async/await, Task composition, ValueTask optimization, async streams, and cancellation so you avoid these pitfalls. ## Core Features & Use Cases - Async/Await Fundamentals: Correct method signatures, Task and Task<T> creation, and sequential versus parallel composition with Task.WhenAll and Task.WhenAny. - Performance & Safety Patterns: ValueTask for hot paths, ConfigureAwait(false) in library code, deadlock prevention, and structured exception handling including AggregateException. - Streaming & Cancellation: IAsyncEnumerable<T> async streams with filtering and buffering, CancellationToken propagation, linked tokens, and ASP.NET Core background services. - Use Case: You are building an ASP.NET Core API that fetches data from multiple sources concurrently with a timeout. Use this Skill to compose tasks with Task.WhenAll, apply CancellationToken with a CancellationTokenSource timeout, and stream results via IAsyncEnumerable. ## Quick Start Ask the AI to review or write your C# asynchronous code using the async patterns in this skill, for example to convert a blocking method into a properly cancellable async Task-based implementation.