Multithreading in .NET: When Performance Isn't Enough
summary
Problems that arise when using .NET multithreading primitives (Task.Delay, SemaphoreSlim, ConcurrentDictionary) for high-performance scenarios — long waits on locks, excessive memory use and long GCs. Shows how general-purpose thread-safe collections and synchronization primitives can add unnecessary overhead and presents custom, task-specific implementations and patterns that avoid those performance pitfalls; includes examples and a look at techniques used inside .NET internals.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 1:44Timer issues in .NET
- 15:36Optimizing Slim Semaphore
- 28:54Async I/O and overflow
- 35:38ConcurrentDictionary drawbacks
- 57:29Summary
related talks
01h 02mThread pools: variety of algorithms and features
01h 08mBetter Code: Concurrency
39mPushing 'await' to the Limits: Unleashing Multi-Threading Power in .NET
01h 03mBuilding responsive and scalable applications
01h 41mThreads Considered Harmful
55mAsync internals in .NET
47m“Multithreading is the answer. What is the question? (part 1 of 2)”
01h 14mMultithreading in UI application: When some threads are more equal than others
