lock vs Monitor vs SemaphoreSlim vs System.Threading.Lock em C#
Quatro formas de proteger uma seção crítica em C#, e uma matriz de decisão para escolher uma. Use System.Threading.Lock para exclusão mútua síncrona no .NET 9+, SemaphoreSlim quando a seção atravessa um await, e Monitor apenas quando você precisa de Wait/Pulse.