У нас есть бизнес-кейс, который идеально подходит для нескольких BackgroundWorkers.
Например, у нас есть форма с кнопкой «Сохранить». Обычно мы выполняем все команды сохранения (например, «Сохранить») синхронно, а затем закрываем форму. Теперь мы хотели бы разделить работу на отдельные потоки, используя backgroundworker.
Мы перебираем каждое требуемое «Сохранить» (может быть много и / или различное количество команд, которые должны быть выполнены), создавая BackgroundWorker для каждой требуемой команды.
Вопрос в том ... как нам дождаться завершения ВСЕХ BackgroundWorkers, прежде чем закрыть форму. Мы понимаем, как ждать завершения одного BackgroundWorker, но когда у нас работает X фоновых рабочих, как нам ждать, пока все не будет завершено, прежде чем закрывать форму пользовательского интерфейса?