public void RemoveBlock(T obj) { var wasLock = IsBlocked; if (lockObjects.Contains(obj)) { lockObjects.Remove(obj); } LockObjectRemoved?.Invoke(obj); if (wasLock && !IsBlocked) { StopLock?.Invoke(); } }
private void OnLockObjectRemoved(T obj) { logger?.Write($"{logName}. Remove block {obj}. Remain blocks: {GetBlockedObjectNames()}", logLevel); LockObjectRemoved?.Invoke(obj); }