ProjToolV2.BackgroundExecutorWithStatus.actionWorker_ProgressChanged C# (CSharp) Method

actionWorker_ProgressChanged() private method

private actionWorker_ProgressChanged ( object sender, ProgressChangedEventArgs e ) : void
sender object
e System.ComponentModel.ProgressChangedEventArgs
return void
        private void actionWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            string animate = string.Empty;
            if (e.UserState != null)
            {
                animate = e.UserState.ToString();
            }

            string automatedString = animate + new string('.', _numberOfDots);
            int lastLine = _statusControl.Lines.Length;
            if (lastLine < 2)
            {
                _statusControl.InvokeIfRequired(s =>
                {
                    _statusControl.Text = automatedString;
                });
            }
            else
            {
                if (_statusControl.Lines[lastLine - 1].Contains(animate))
                {
                    string trimmedText = _statusControl.Text.Remove(_statusControl.Text.LastIndexOf(animate, StringComparison.Ordinal));
                    _statusControl.InvokeIfRequired(s =>
                    {
                        _statusControl.Text = trimmedText + automatedString;
                    });
                }
                else
                {
                    _statusControl.InvokeIfRequired(s =>
                    {
                        _statusControl.Text += Environment.NewLine + automatedString;
                    });
                }
            }
            _numberOfDots = (_numberOfDots + 1) % (_maxDots + 1);
        }