【发布时间】:2016-02-06 01:53:55
【问题描述】:
我开始阅读有关 .net 异步编程模型的文档和博客。在所有文档中,如果操作是阻塞工作(访问文件系统、访问网络、访问 sql 等。任何远程数据存储(如果您有更多阻塞工作示例,请分享),请使用异步。 )。
如果我的系统有足够的能力在不使用异步模型的情况下运行所有工作怎么办。 我还需要异步吗?
我知道你会说不要浪费调用阻塞工作的线程,但认为我在线程池上有很多空闲线程。
请从 asp.net 应用程序的角度威胁我的问题
【问题讨论】:
-
这与“拥有权力”无关。事物以不同的速度运行,因此代码将不得不经常等待。在某些情况下,异步允许您在等待时做一些事情。
-
当我说“有能力”时,我的意思是拥有更多的核心,因此意味着更多的线程池可以处理更多的并发线程
-
这就是重点。这不是要并行做更多的工作。这是关于等待/利用等待。无论您拥有多少核心,您的硬盘都不会更快。如果您从磁盘读取,您可以等待操作完成或在等待时执行某些操作。
标签: c# asp.net multithreading asynchronous task-parallel-library