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; }