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
