не использует async/await для ORM, да и вообще для многих случаях. Просто потому что оно легаси. Я как-то не задумывался раньше о таком, ибо залетел, когда уже async/await были в порядке вещей. Какие главные минусы в том, что не используют асинхронщину? Когда пообщался с одним человеком, то мне объяснили что в .net framework TaskSheduler плохо работает и что-то на эту тему, уже забыл аргументы. Вообще, представив, что у нас есть супермашины и неограниченные ресурсы. Насколько мы затормаживаем нашу систему не используя асинки? Понятное дело, что часто придётся создавать поток на выполнение задачи, например, отправку запросы в бд. Создание потока - это ресурсоемкое и времязатратное дело. Получается, весь перфоманс заключается в том, что с помощью асинков мы будем экономить время на том, что будет грамонто менеджерить потоки минимизируя необходимость в новых потоках? Ведь виртуальных потоков мы можем создавать сколько угодно
асинки для io операций , создание таски не равно создание потока
Ну если у нас накопятся очень много тасок на выполнение, разве потоки не создадутся для их выполнения?
У тебя какой-то поток (если асинхронный метод выполняется без task.run или без другого механизма смены потока - это будет тот же поток который работал до этого) доходит до "самого низа" асинхронного метода Потом создаёт коллбэк на уровне "стукни рантайм когда закончишь" Когда метод заканчивается он вызывает этот коллбэк И какая-то треда тредпула выполняет этот коллбэк (если там есть код который надо выполнять) Как минимум у тебя просто таск помечается как completed и коллбэка нет
И какая-то треда тредпула выполняет этот коллбэк (если там есть код который надо выполнять) Зависит от контекста синхронизации и ConfigureAwait
Да, но у меня в голове всегда асп нет
Обсуждают сегодня