public LocalConcurrencyManager(int timeoutMs, IEqualityComparer <T> comparer, TimeoutStrategyBase <T> strategy)
 {
     this.Timeout          = timeoutMs;
     this._dict            = new ConcurrentDictionary <T, SemaphoreSlim>(comparer ?? EqualityComparer <T> .Default);
     this._timeoutStrategy = strategy ?? TimeoutStrategy.GetExceptionMode <T>();
 }
 public LocalConcurrencyManager(int timeoutMs, IEqualityComparer <T> comparer) : this(timeoutMs, null, TimeoutStrategy.GetExceptionMode <T>())
 {
 }