Запуск итераций цикла по событию - C#

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

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

есть BackgroundWorker1, который выполняет определенное действие. есть BackgroundWorker2, который запускает BackgroundWorker1 в цикле, НО т.к. BackgroundWorker1 выполняется в отдельном потоке, то очередная итерация цикла запускает BackgroundWorker1 не дожидаясь окончания выполнения предыдущей итерации, поэтому, естественно, BackgroundWorker1 возвращает исключение, что его невозможно запустить, т.к. он уже запущен. вопрос: возможно ли как-то реализовать выполнение итераций цикла в BackgroundWorker2, только после завершения BackgroundWorker1? ЗЫ на данный момент в цикле, запускающем BackgroundWorker1 выполняется проверка состояния BackgroundWorker1 с паузой в потоке. это костыли и они глючат периодически.

Решение задачи: «Запуск итераций цикла по событию»

textual
Листинг программы
 while (sendBackgroundWorker.IsBusy)
                    {
                        System.Threading.Thread.Sleep(100);
 
 
                        //sendButton.Enabled = false;
                        //cancelButton.Enabled = true;
                    }
                    sendBackgroundWorker.RunWorkerAsync(
                                new SendArgument()
                                {
                                    Hostname = hostnameTextBox.Text,
                                    Filename = fileList[i]
                                });

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


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

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

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