Фоновый рабочий в основном предназначен для работы с пользовательским интерфейсом, когда вам нужно легко запустить задачу в фоновом потоке и предоставить обновления прогресса на экран.
Одним из преимуществ является то, что он выполняет обратные вызовы для потока пользовательского интерфейса, поэтому вам не нужно проверять InvokeRequired и т. Д.
Делегаты - это более общий механизм для передачи функций в качестве аргументов, и, выполняя их асинхронно, они дают вам простой способ запуска этих методов в другом потоке.