public bool Signal() { EnsureNotDisposed(); if (_count <= 0) throw new InvalidOperationException("Invalid attempt made to decrement the event's count below zero."); var newCount = Interlocked.Decrement(ref _count); if (newCount == 0) { _event.Set(); return true; } return false; }