【发布时间】:2012-10-09 06:07:09
【问题描述】:
凭借异步 I/O 的优势,现在编码和编写非常容易(使用 Await 和 TAP 方法)我想知道,我们是否应该默认使用异步,并且只在需要时使用同步来调整性能.
异步 I/O 释放调用线程并允许在等待结果时执行其他操作。另一方面,异步 I/O 比同步慢一点。
为了强制执行响应式 UI,WinRT 设计人员发现提供仅异步方法是可以接受的。
AFAIK Windows 文件 I/O 内部是异步的。天真地看着这个我不清楚,为什么 .NET 中的异步文件 i/O 应该比同步慢。
我通常倾向于简单性和稳健性,并且只在必要时调整性能。过去,我们默认使用同步,但调用某些服务以及手机等平台强制执行异步除外。我们很少使用异步进行调整。
【问题讨论】:
-
pfxteam blog 在此上下文中包含一些有趣的信息:"请注意,我们没有添加粒度非常小的 API 的异步版本,例如 TextReader.Peek。原因是异步 API 也增加了一些开销,我们希望防止开发人员意外走错方向。这也意味着我们特别决定不为 BinaryReader 或 BinaryWriter 上的方法提供异步版本....
标签: .net asynchronous task-parallel-library