- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您决定通过将一些 CPU 密集型代码放入任务中并在线程池中运行来从 UI 线程中卸载一些 CPU 密集型代码,那么这些代码本身是否会从使用“await”关键字中获益?
答案似乎是“不”。
我的意思是,在 UI 线程中等待 Tasks 的主要原因之一是释放 UI 线程,使其备份以执行它之前正在执行的操作。如果您在线程池上运行时作为任务等待,您将释放该线程做什么?
我是否漏掉了一些非常明显的东西?
最佳答案
If you decide to offload some CPU intensive code from the UI thread by putting it in a task and running it in the Thread Pool, would this code itself ever benefit from using the "await" keyword?
只是 CPU 密集型任务?也许不是。
但这并不是在线程池线程中运行代码的唯一原因。
考虑一个 web 服务器——所有的请求都将在线程池线程中处理......并且通过在处理这些请求时使用 await
(例如,在等待数据库或其他 web 服务响应时)你可以在很少的线程上处理数百万个请求。
此外,即使在丰富的 GUI 场景中,您可能希望将一些长时间运行的任务放到线程池线程上,但仍会从该线程启动多个异步请求。 async/await 鼓励组合异步操作的方式使得以异步方式编写代码是完全合理的,无论它恰好在哪个线程上运行。
关于.net - 你会在线程池线程上使用 await 关键字吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11803076/
我是一名优秀的程序员,十分优秀!