/// <summary> /// Starts this instance. /// </summary> public async Task Start() { await Task.Run(() => { _state = ManualParallelState.Processing; var itemsToProcess = _actions.Skip((int)(LowestBreakIndex ?? 0)); ParallelLoopResult result = Parallel.ForEach(itemsToProcess, _options, ActionWrapper); LowestBreakIndex = result.LowestBreakIteration; _state = LowestBreakIndex == null ? ManualParallelState.None : _state; }); }
/// <summary> /// Stops this instance. /// </summary> public void Stop() { _state = ManualParallelState.Terminated; }
/// <summary> /// Pauses this instance. /// </summary> public void Pause() { _state = ManualParallelState.Paused; }