public void RequestUnlock(object token) { if (_disposed) { return; } UnLockRequested?.Invoke(this, new GenericEventArgs <object>(token)); _tokens.Remove(token); }
protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { _tokens.ForEach(token => UnLockRequested?.Invoke(this, new GenericEventArgs <object>(token))); UnLockRequested = null; LockStatusChanged = null; LockRequested = null; _currentStatusCallback = null; _tokens.Clear(); _tokens = null; } _disposed = true; } }