private void ProcessLockExpiry(object sender, ElapsedEventArgs e) { logger.LogDebug($"ProcessLockExpiry"); lock (@lock) { if (!expiryDatesByFileId.Any() || expiryDatesByFileId.First.ExpiryDate > DateTime.UtcNow) { ResetInterval(); return; } var expiredLockInfo = expiryDatesByFileId.Dequeue(); eventBus.Publish <FileLockChangedEvent, FileLockChangedMessage>( new FileLockChangedMessage(expiredLockInfo.FileId, FileLockDto.NoLock())); ResetInterval(); } }