Как остановить выполнение BackgroundWorker - C#

Узнай цену своей работы

Формулировка задачи:

здравствуйте. Не пойму как можно остановить поток. Есть две кнопки старт и стоп.
Листинг программы
  1. private void start_Click(object sender, EventArgs e)
  2. {
  3. bwExport.RunWorkerAsync();
  4. }
  5. private void stop_Click(object sender, EventArgs e)
  6. {
  7. if (bwExport.WorkerSupportsCancellation == true)//подглядел в инете, думал это поможет
  8. {
  9. bwExport.CancelAsync();
  10. }
  11. }
В самом потоке выполняется
Листинг программы
  1. void bwExport_DoWork(object sender, DoWorkEventArgs e)
  2. {
  3. while(true)
  4. {
  5. DrawGraph();//рисуется график раз в 15 минут.
  6. System.Threading.Thread.Sleep(900000);
  7. }
  8. }

Решение задачи: «Как остановить выполнение BackgroundWorker»

textual
Листинг программы
  1.         static void Main()
  2.         {
  3.             var bw = new BackgroundWorker(){WorkerSupportsCancellation = true};
  4.             bw.DoWork += (sender, e) =>
  5.                          {
  6.                              var worker = (BackgroundWorker) sender;
  7.                              var random = new Random();
  8.                              while (!worker.CancellationPending)
  9.                              {
  10.                                  Console.WriteLine(random.Next());
  11.                                  Thread.Sleep(500);
  12.                              }
  13.                              Console.WriteLine("Finish");
  14.                          };
  15.             for (;;)
  16.             {
  17.                 Console.WriteLine("Нажмите любую клавишу чтобы начать");
  18.                 Console.ReadKey();
  19.                 bw.RunWorkerAsync();
  20.                 Console.WriteLine("Нажмите любую клавишу чтобы закончить");
  21.                 Console.ReadKey();
  22.                 bw.CancelAsync();
  23.             }
  24.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы