我在这里阅读相互矛盾的意见。我是对的,虽然异步方法调用也由用户看不到的线程池处理,这可能会节省资源,因为底层操作系统能够在IO调用挂起时挂起这些线程吗?
答案 0 :(得分:1)
你是完全正确的。 IO线程不仅被暂停,它们在不需要时也会被淘汰。但异步IO不是所有问题的通用解决方案,这就是原因:
答案 1 :(得分:0)
理想情况下,如果可能,您将使用.net 4.0 System.Threading.Tasks.Parallel类。它将利用多核处理器。
这很简单。
答案 2 :(得分:0)
'异步方法调用也由用户不可见的线程池处理' - 是的,必须要做I / O!
'这可能会节省资源,因为底层操作系统能够暂停这些线程而IO调用正在等待' - 操作系统能够在I / O挂起时暂停用户线程。
在高性能应用程序中,异步获胜是因为更多的工作被推送到可以更好地进行线程管理的内核中。这确实减少了上下文切换,也避免了大量数据复制。