Запуск итераций цикла по событию - 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] });
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д