SetCurrentOperation() public method

public SetCurrentOperation ( string currentOperation ) : void
currentOperation string
return void
Ejemplo n.º 1
0
            public override void EndProcessing()
            {
                try
                {
                    _progressManager.TotalCount = _input.Count;
                    var lastPercentComplete = -1;
                    foreach (var i in _input)
                    {
                        var processed = Pool.GetEstimatedProgressCount();
                        _lastEstimate = processed;
                        _progressManager.SetCurrentOperation($"Starting processing of {i}");
                        _progressManager.UpdateCurrentProgressRecord(processed);
                        var pr = _progressManager.ProgressRecord;
                        if (lastPercentComplete != pr.PercentComplete)
                        {
                            WriteProgress(pr);
                            lastPercentComplete = pr.PercentComplete;
                        }

                        while (!Pool.TryAddInput(ScriptBlock, i))
                        {
                            WriteOutputs();
                        }
                    }
                    _progressManager.SetCurrentOperation("All work queued. Waiting for remaining work to complete.");
                    while (!Pool.WaitForAllPowershellCompleted(100))
                    {
                        WriteProgressIfUpdated();
                        if (Stopping)
                        {
                            return;
                        }
                        WriteOutputs();
                    }
                    WriteOutputs();
                }
                finally
                {
                    _progressManager.UpdateCurrentProgressRecord(Pool.GetEstimatedProgressCount());
                    WriteProgress(_progressManager.Completed());
                }
            }