private async void button1_Click(object sender, EventArgs e)
        {
            progressBarSample = new ProgressBarSample();
            progressBarSample.ProgressChanged += OnProgressChanged;
            cancellationTokenSource            = new System.Threading.CancellationTokenSource();
            var token = cancellationTokenSource.Token;

            string message = "";
            bool   isError = false;

            try
            {
                var task = await Task <bool> .Factory.StartNew(() => progressBarSample.Work(token), token);

                //await task;
            }
            catch (OperationCanceledException)
            {
            }
            catch (Exception ex)
            {
                isError = true;
                message = $"Произошла ошибка {ex.Message}";
            }

            if (!isError)
            {
                message = true ? "Процесс отменет" : "Процесс завершен";
            }

            MessageBox.Show(message);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            _progressBarSample = new ProgressBarSample();
            _progressBarSample.ProgressChanged += OnProgressChanged;
            _progressBarSample.WorkCompleted   += OnWorkCompleted;

            var thread = new Thread(() => _progressBarSample.Work(synchronizationContext));

            thread.Start();
            button1.Enabled = false;
        }