bound операций?
Тебя никто не заставляет юзать await сразу Ты можешь сделать так: Task t = Task.Run(...); // Some work here await t; Пока выполняется some work - твой t уже запущен и работает
В таком случае, там где await просто возвращается и дожидается результат, а там где Task.Run задача передаётся в отдельный поток, верно?
там есть туча оптимизаций когда оно будет а когда нет
Условно так, в стандартной ситуации вызов Task.Run сделает для твоей задачи ThreadPool.QueueUserWorkItem, используя ThreadPoolTaskScheduler (как дефолтный в большинстве контекстов, но не единственный существующий)
https://source.dot.net/#System.Private.CoreLib/Task.cs,107ac97251bea153
Обсуждают сегодня