lock vs Monitor vs SemaphoreSlim vs System.Threading.Lock en C#
Cuatro formas de proteger una sección crítica en C#, y una matriz de decisión para elegir una. Usa System.Threading.Lock para exclusión mutua síncrona en .NET 9+, SemaphoreSlim cuando la sección cruza un await, y Monitor solo cuando necesitas Wait/Pulse.