ConditionalLock (nuget): Lock only when similar objects are entering a critical section
Keywords: multithreading|lock|threading|conditional