c# – 异步等待和线程

c# – 异步等待和线程,第1张

概述参见英文答案 > async – stay on the current thread?                                    3个 我正在使用async-await和tasks,但我无法理解一件事: 异步任务是在单独的线程中执行的吗? 正如msdn所说(Asynchronous programming): The async and await keywords 参见英文答案 > async – stay on the current thread?3个
我正在使用async-await和tasks,但我无法理解一件事:

异步任务是在单独的线程中执行的吗?

正如msdn所说(Asynchronous programming):

The async and await keywords don’t cause additional threads to be created. Async methods don’t require multithreading because an async method doesn’t run on its own thread.

但是在ThreadPool类(ThreadPool Class)的描述中的备注:

Examples of operations that use thread pool threads include the following:

When you create a Task or Task object to perform some task asynchronously,by default the task is scheduled to run on a thread pool thread.

所以,现在我不明白异步任务是否使用单独的线程.请解释一下.谢谢.

解决方法 任务不一定代表额外的线程.

如果等待任务,则将控制流返回给方法的调用方,直到“某人”将任务设置为已完成.

如果通过Task.Run()或Task.Factory.StartNew()启动任务,则传递给这些调用的 *** 作将在另一个线程上执行(不是新线程,而是来自ThreadPool的线程).

总结

以上是内存溢出为你收集整理的c# – 异步等待和线程全部内容,希望文章能够帮你解决c# – 异步等待和线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存