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

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

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

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

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

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

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


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

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

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

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

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

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