当我调用 foo() 时,该方法是否在单独的线程上运行?
public async Task<bool> foo(){
//Some code
}
不,不是的。它可以在内部启动另一个线程并返回该任务,但总体思路是它不在任何线程上运行。
让我解释。异步的一般用途是如果您不受 CPU 限制,这意味着 IO 和 Windows 中的所有 IO 在最低级别都有回调操作接口,因此 - 网络请求发送请求,然后继续工作 - 但没有线程随附的。完全没有。异步的一般用例是异步在一个线程上运行,当没有什么可做的时候,它将使用线程来完成任务,允许在一个线程上进行多个操作 - 并且...IO 不会耗尽线程。
您的方法基本上变成一个状态引擎,将控制权交给任务调度程序,等待发出已完成的任务信号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)