Backgroundworker.IsBusy всегда true - C#

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

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

В общем, есть метод, который должен делать дела, ждать секунду и продолжать делать дела. В нем я вызываю BackgroundWorker, в котором жду секунду, ВРОДЕ КАК завершаю работу потока и выхожу дальше. Выбрал самый наибанальнейший вариант, потому что пробовал по-разному - не получалось. Код:
        
        public void Animate()
        {
            Solver s = new Solver(_desk);
            foreach (var item in s.Solution)
            {
                //Делаем дела
                _form.Update();
                _form.backgroundWorker1.RunWorkerAsync();
           }
        }
    }
 
...     public void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            BackgroundWorker bw = sender as BackgroundWorker;
            e.Cancel = true;
            Thread.Sleep(1000);
        }
Но нифига, IsBusy все еще true после выполнения
e.Cancel = true;
Насколько я понимаю, именно так нужно закрывать поток? Тыкните ошибку, пожалуйста:С

Решение задачи: «Backgroundworker.IsBusy всегда true»

textual
Листинг программы
_form.BeginInvoke(new Action(delegate { _form.Update(); }));

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


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

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

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