作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
If async-await doesn't create any additional threads, then how does it make applications responsive?
(11 个回答)
2年前关闭。
当我调用 foo() 时,此方法是否在单独的线程上运行?
public async Task<bool> foo(){
//Some code
}
最佳答案
不,不是的。它可以在内部启动另一个线程并返回该任务,但总体思路是它不在任何线程上运行。
让我解释。 async 的一般用途是如果您不受 CPU 限制,这意味着 IO 和 windows 中的所有 IO 在最低级别都有回调操作接口(interface),所以 - 网络请求发送请求然后继续工作 - 但没有线程随附的。完全没有。 async 的一般用例是 async 在线程上运行,当无事可做时,它将使用线程完成任务,允许在一个线程上进行多个操作 - 并且...... IO 不会用完线程.
您的方法基本上变成了状态引擎,将控制权交给任务调度程序,等待发出已完成任务的信号。
关于c# - "async"是否在单独的线程中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59918070/
我是一名优秀的程序员,十分优秀!