Cliff diving into async in .NET Core and C# 8
summary
Demonstrates concrete problems and fixes for real async code on .NET Core 3.0 / C# 8: reproduces SyncOverAsync deadlocks, measures thread-starvation from Task.Run wrappers, and implements an SLA wrapper that cancels after 10s using linked CancellationTokenSources and TaskCompletionSource with RunContinuationsAsynchronously. Explains memory and frame savings for non-async returns, shows improved stack traces, and builds working examples of IAsyncDisposable cleanup and streaming with IAsyncEnumerable that actually run on stage.
AI-written summary · about
chapters (8)
- 0:00Start
- 9:42introduce a thread starvation problem
- 16:49accept the cancellation token
- 17:23pass a cancellation token to an http client
- 20:47use the task completion source and the task
- 21:07use the task completion source
- 23:15attach a delegate to the cancellation token
- 44:43combine the streaming nature with the async concurrency
related talks
27mAsync/Await: Thinking beyond Combine
50mThinkAsync in Java8
30mParadigms for dealing with asynchrony
48mAsynchronous streams in direct style with and without macros
41mAsynchronous JavaScript
25mWhat's the hardest thing TIMING! about async?
50mUsing Asyncio in Python 3
45mApplying Reactive Programming with Rx
