Re: Можно ли сделать код без предупреждений ?
От: pugv Россия  
Дата: 11.01.24 10:20
Оценка: +1 -1
Это предупреждение примерно о том же, о чём рекомендация не использовать async void методы.
Что будет, если эта async лямбда выкинет исключение? Кто его поймает?

Array.ForEach(Ids.ToArray(), async (p) =>
{
  var result = await GetDataAsync(p, ct);
});


А в чём вообще смысл этого кода? Array.Foreach под капотом всего лишь вызывает переданный Action в синхронном цикле. Зачем он async? Если цель — для каждого элемента запустить fire-and-forget таску, то её и запускай внутри синхронного Action.

Array.ForEach(Ids.ToArray(), p =>
{
  Task.Run(() =>
  {
    var result = GetDataAsync(p, ct).Result;
  });
});
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.