Jin*_*ger 0 c# async-await asp.net-core-webapi
Controller中的Action已经在不同的线程中了,为什么还需要使用async/await呢?我在看:https : //docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio#examine-the-posttodoitem-create-方法 我看到它在这个控制器中有一个动作:[HttpPost] public async Task> PostTodoItem(TodoItem todoItem)
所以,我在自己的控制器中做了一些测试,我看到当我从浏览器发送请求时,服务器端总是创建一个新的工作线程来处理请求,这就是为什么我有疑问:如果控制器已经在不同线程中处理请求,为什么我还要使用 async/await?由于请求是在新线程中处理的,我认为它不会阻止任何其他请求。
在异步并等待格局是约可扩展性。当您可以使用 IO 完成端口时,为什么要阻塞线程?就这么简单。
在异步伺机模式卸载工作(词松散使用),并允许线程池的潜在恢复线程和其他地方使用它,直到你的IO工作完成。
您现在可能没有注意到差异,但是当您开始将网站扩展到 1000 多个并发作业时,有效地使用资源将开始变得很重要。您可以使用的工具之一是…… async 和 await 模式。
注意:这是对一个复杂而微妙的主题的简单问题的简单回答。无需撰写关于语言功能的内部工作原理及其用途的论文,这可能是您开始研究 async 和 await 模式以回答自己一些最常见问题的好地方,您将获得乐趣和收获有成就感:)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |