我有2个问题想问。
我在 Microsoft 文档中读过这段关于 async/await 的内容。但是我没看清楚。
“如果 GetStringAsync(以及 getStringTask)在 AccessTheWebAsync 等待它之前完成,则控制权保留在 AccessTheWebAsync 中。如果被调用的异步进程 (getStringTask) 已经完成并且 AccessTheWebSync 不必等待,则暂停然后返回到 AccessTheWebAsync 的费用将被浪费为了最终的结果。”
你能解释一下吗?
正如我所读,当您在 C# 中使用 async/await 时,代码不会在两个单独的线程中运行。它仍然在同步上下文中,但它会在遇到“await”关键字的情况下返回 Task 作为在完成之前返回结果的承诺。如果任务在“等待”之前完成,现在与同步相同。没有区别。即使从调用方方法切换到“AccessTheWebAsync”方法(反之亦然)的成本也很高。
抱歉,这是我第一次在 StackOverflow 上提问。
慕容3067478
慕少森
相关分类