Запуск итераций цикла по событию - 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]
});