Другой вопрос - зачем тогда async/await?
А если ты выполняешь это в цикле, значит будет запущено N параллельных и никак не связанных между собой операций.
Если это сетевые соединения или выборки из базы, с файловой системы, они могут ушатать эту систему. Если просто какие-то вычисления в памяти - выесть все ресурсы CPU, доступные тредпулу потоки и по 1 мб памяти на каждый дополнительно запущенный (стек).
Если же ты пишешь await, то в контексте вызова твоего метода ничего не происходит до завершения async-метода. Он не переходит к следующей итерации цикла, он не возвращается из цикла, не выходит из блоков try-catch-finaly и т.д.
запущено N параллельных и никак не связанных между собой операций. Ну только навреное не запущено, а текущем шедулером запланировано на исполнение. Пушо если ты 1'000'000 тасок запланируешь - они не будут разом исполняться. Если есть запланированные таски и свободные ресурсы - тогда будут.
Обсуждают сегодня