~/talk

Async Internals in .NET

Talkat DevConf 2019 · 2019-09-25..09-27· [dotnet, concurrency]
slides:none on file

Explains how await targets awaiters not necessarily Task objects, shows the compiler‑generated state machine and how synchronization context capture causes continuations to post back (UI thread, ASP request, or thread pool), and demonstrates deadlocks from synchronous .Wait/.Result and fixes with ConfigureAwait(false). Covers Task vs ValueTask allocations, unobserved exceptions, and implements a custom TaskScheduler + synchronization context to await async void — a demo that surfaces async exceptions without crashing the process.

AI-written summary · about

  1. 0:00Introduction to async internals
  2. 1:12Counter intuitive async execution
  3. 3:18Awaiting without tasks
  4. 5:46Task lifecycle and implementation
  5. 10:04Task scheduler internals
  6. 13:56Task cleanup and ValueTask
  7. 15:40Synchronization context explained
  8. 20:17State machine compilation
  9. 23:47MoveNext method breakdown
  10. 31:58Deadlock scenarios
  11. 37:20Unit tests and sync context
  12. 38:49Exception handling in async
  13. 41:58Awaiting async void methods
  14. 44:48Best practices summary
  15. 46:30Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.