Вступить в клуб →
средняявопросasync/await, многопоточность и фоновые задачи

Parallel.ForEach с async-лямбдой завершается раньше, чем отправлены уведомления

Parallel.ForEach(users, async user =>
{
    await _push.SendAsync(user.DeviceToken, message);
});
_log.LogInformation("Рассылка завершена");

Лог «Рассылка завершена» появляется сразу, часть уведомлений уходит позже, а ошибки отправки никто не видит. Как правильно?

  • Parallel.ForEachAsync с ограничением параллелизма
  • Добавить Thread.Sleep после Parallel.ForEach
  • Заменить await на .Wait() внутри лямбды
  • Использовать foreach без await

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела