public IEnumerable <ICoroutineResult> CoroutineWaitingForSeveralItems(int waitCount = 1) { _coroutineResultsCount = 0; _completed = false; var result = 0; yield return(CoroutineResult.Wait); yield return(CoroutineResult.ForEachItem(ReturnSeveralItemsAndWaitInBetween(waitCount), "ReturnSeveralItemsAndWaitInBetween") .Do((r) => { Console.Write(" _"); _partialCoroutineResultsCount++; result++; return true; }) .OnComplete(() => { Console.WriteLine(" X"); _completed = true; }) .WithTimeout(TimeSpan.FromDays(10)) .AndWait()); Console.WriteLine("U"); if (_completed) { _coroutineResultsCount = result; } }
public IEnumerable <ICoroutineResult> NotWaitingForAllResults(int waitCount = 1) { _notWaitingStarted = true; _completed = false; var result = 0; yield return(CoroutineResult.Wait); yield return(CoroutineResult.ForEachItem(GetAllItems(waitCount), "GetAllItems") .Do <int>((r) => { result++; return true; }) .OnComplete(() => { _coroutineResultsCount = result; }) .WithTimeout(TimeSpan.FromDays(10))); _notWaitingCompleted = true; }