System.Threading.Lock: The Purpose-Built Lock That Replaces Your object Hack
Since .NET 9, the System.Threading.Lock type gives you a dedicated, faster, and semantically clearer alternative to locking on a bare object. Here is how it works, why it is roughly 25% faster than Monitor, and what to watch out for when migrating.
ThreadPool Tuning in .NET: What You Can (and Cannot) Control
Understand how the .NET ThreadPool manages threads, when to adjust minimum threads, and how to diagnose starvation.
Interlocked and Lock-Free Patterns in .NET
Use Interlocked operations for high-performance, lock-free atomic updates to shared state in concurrent .NET applications.
SynchronizationContext Demystified
Understand what SynchronizationContext is, how different .NET platforms implement it, and why it shapes async behaviour.
The Lock Object: A Purpose-Built Synchronisation Primitive
C# 13 introduces System.Threading.Lock, a dedicated type for the lock statement that improves performance and clarity.