Я работаю с async-await
и задачами, но я не могу понять одну вещь:Асинхронный ждут и нити
ли асинхронная задача выполняется в отдельном потоке?
Как говорит MSDN (Asynchronous programming):
Асинхронные и поджидают ключевые слова не вызывают дополнительные потоки, которые будут созданы. Асинхронные методы не требуют многопоточности, потому что метод async не запускается в своем потоке.
Но в слове в описании ThreadPool
класса (ThreadPool Class):
Примеры операций, которые используют пул потоков темы включают в себя следующее:
При создании задач или задач объект выполнить некоторую задачу асинхронно, по умолчанию задача должна запускаться в потоке пула потоков.
Итак, теперь я не понимаю, если задание async
использует отдельную тему. Объясни мне пожалуйста. Благодарю.
Существует два вида задач: делегирование задач (выполнение кода) и обещание задач (которые представляют собой будущие события). Только делегированные задачи фактически * запускаются *, и они могут или не могут выполняться в пуле потоков. Подробнее [в моем блоге] (http://blog.stephencleary.com/2014/04/a-tour-of-task-part-0-overview.html). –