handling-async-operations
SolidImplements asynchronous programming patterns using Task, ValueTask, and ConfigureAwait in .NET. Use when building non-blocking I/O operations or improving application responsiveness.
Web & Frontend 40 stars
6 forks Updated 6 days ago MIT
Install
Quality Score: 78/100
Stars 20%
Recency 20%
Frontmatter 20%
Documentation 15%
Issue Health 10%
License 10%
Description 5%
Skill Content
# .NET Asynchronous Programming
A guide for APIs and patterns for efficient asynchronous programming.
**Quick Reference:** See [QUICKREF.md](QUICKREF.md) for essential patterns at a glance.
## 1. Core APIs
| API | Purpose |
|-----|---------|
| `Task` | Async operation (no return value) |
| `Task<T>` | Async operation (with return value) |
| `ValueTask<T>` | Optimization for high-frequency calls |
| `IAsyncEnumerable<T>` | Async streams |
---
## 2. Task vs ValueTask
### 2.1 When to Use Task<T>
- Most async operations
- When actual async work always occurs
### 2.2 When to Use ValueTask<T>
- When synchronous completion is frequent (cache hits)
- High-frequency call methods
```csharp
// Use ValueTask when cache hits are frequent
public ValueTask<Data> GetDataAsync(string key)
{
if (_cache.TryGetValue(key, out var cached))
{
// Synchronous return (no Heap allocation)
return new ValueTask<Data>(cached);
}
// When async work is needed
return new ValueTask<Data>(LoadFromDbAsync(key));
}
```
### 2.3 ValueTask Cautions
```csharp
// ❌ Bad example: Awaiting ValueTask multiple times
var task = GetDataAsync("key");
var result1 = await task;
var result2 = await task; // May cause error!
// ✅ Good example: Await only once
var result = await GetDataAsync("key");
```
---
## 3. ConfigureAwait
```csharp
// Use ConfigureAwait(false) in libraries
public async Task<string> FetchDataAsync()
{
var response = await _httpClient.GetAsync(url)
...
Details
- Author
- christian289
- Repository
- christian289/dotnet-with-claudecode
- Created
- 7 months ago
- Last Updated
- 6 days ago
- Language
- C#
- License
- MIT
Similar Skills
Semantically similar based on skill content — not just same category
AI & Automation Listed
csharp-async
Get best practices for C# async programming
2 Updated today
FJRG2007 AI & Automation Listed
async-await-pitfalls
Review C# async/await code for deadlocks, sync-over-async, async void, ValueTask misuse, fire-and-forget, and CancellationToken propagation. Use when writing or reviewing any async C# code.
0 Updated today
Sarmkadan Data & Documents Listed
dotnet-techne-csharp-concurrency-patterns
Use when choosing .NET concurrency patterns for async I/O, queues, pipelines, or thread safety. Keywords: async/await, channels, dataflow, Rx, lock contention, producer consumer, parallel processing.
11 Updated 2 days ago
Metalnib