Locky (nuget): All questions in your team about how to properly use locks can be answered with "use Locky" from now on. It is very easy to use, because you can lock on strings via both synchronous and asynchronous methods. There is no risk of forgetting to assign something to a static field, because Locky is static itself (or use Lockally which is also included).
Keywords: string|locker|lock|semaphore|StringLocker|async|TryLock|LockAsync|Locky|Lockally|key|avoid|parallel|mutex|race|conditions|csharp|csharp-library|easy|easy-to-use|locks|semaphoreslim|stringlocker