public async Task WhenIncrementsAreBelowTripLevel_ThenDoesNotStallOnCheck() { var cts = new CancellationTokenSource(); Parallel.For(0, 15, i => _circuitBreaker.Increment()); Task checkTask; await Task.WhenAny( checkTask = _circuitBreaker.CheckBreak(cts.Token), Task.Delay(timeoutInterval)); Assert.True(checkTask.Status == TaskStatus.RanToCompletion); cts.Cancel(); await checkTask; }