csharp-async

Detect and correct C# async anti-patterns during code review.

Updated Mar 23, 2026
One-click install
npx skills add https://github.com/rodoHasArrived/Meridian-main --skill csharp-async-rodohasarrived
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: csharp-async
Source: https://github.com/rodoHasArrived/Meridian-main/tree/main/.claude/plugins/csharp-dotnet-development/skills/csharp-async
Command: npx skills add https://github.com/rodoHasArrived/Meridian-main --skill csharp-async-rodohasarrived

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It helps you avoid common bugs, inefficiencies, and reliability issues in C# asynchronous programming so your async code behaves predictably under load.

Core Features & Use Cases

  • Naming & API shape: Use consistent conventions like the Async suffix and correct task return types for clarity.
  • Exception handling & correctness: Improve reliability by handling exceptions around await and avoiding unsafe patterns like blocking on tasks.
  • Performance & concurrency patterns: Apply best practices such as WhenAll/WhenAny, cancellation tokens, and avoiding unnecessary async/await.

Quick Start

Ask an AI to review your C# methods and propose concrete fixes that align with C# async best practices, including naming, return types, exception handling, and performance patterns.

Frequently Asked Questions about csharp-async

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix C# async code that blocks on tasks using Wait or Result?

To fix C# async code blocking on tasks, replace Wait and Result calls with await to prevent deadlocks and ensure reliable exception propagation during concurrent operations.

What is the correct return type for C# async methods, Task or ValueTask?

Choosing between Task and ValueTask for C# async methods depends on performance needs; Task is standard for asynchronous operations, while ValueTask reduces allocations in hot paths, with rules enforcing correct usage.

When do I need cancellation tokens in C# async methods?

You need cancellation tokens in C# async methods to build cancellation-aware operations, allowing safe cancellation of concurrent workflows and preventing unnecessary resource consumption.

What is the best way to run multiple C# async tasks concurrently?

The best way to run multiple C# async tasks concurrently is applying Task.WhenAll to await all tasks simultaneously or Task.WhenAny for the first completed task, ensuring safe concurrency patterns.

Why does my C# async code need the Async suffix in method names?

C# async code needs the Async suffix in method names to maintain consistent API shape and clarity, helping developers quickly identify asynchronous methods during code review and refactoring.