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

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

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

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

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

textual
Листинг программы
        static void Main()
        {
            var bw = new BackgroundWorker(){WorkerSupportsCancellation = true};
            bw.DoWork += (sender, e) =>
                         {
                             var worker = (BackgroundWorker) sender;
                             var random = new Random();
                             while (!worker.CancellationPending)
                             {
                                 Console.WriteLine(random.Next());
                                 Thread.Sleep(500);
                             }
                             Console.WriteLine("Finish");
                         };
            for (;;)
            {
                Console.WriteLine("Нажмите любую клавишу чтобы начать");
                Console.ReadKey();
                bw.RunWorkerAsync();
                Console.WriteLine("Нажмите любую клавишу чтобы закончить");
                Console.ReadKey();
                bw.CancelAsync();
            }
        }

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


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

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

11   голосов , оценка 4.182 из 5
Похожие ответы