由于异步I/O的优点,它现在很容易编写和编写(使用Await和TAP方法),我想知道,如果我们应该默认使用异步并且只在需要时使用同步来调整性能。我们是否应该默认切换到使用异步I/O?
异步I/O释放调用线程,并允许在等待结果时执行其他操作。另一方面,异步I/O比同步慢一点。
为了实施响应式用户界面,WinRT设计人员发现它可以接受提供异步方法。
AFAIK Windows文件I/O内部是异步的。仔细看这个,我不清楚为什么.NET中的异步文件I/O应该比同步更慢。
我通常喜欢简单性和健壮性,并且只在必要时调整性能。在过去,我们默认情况下使用同步,除了调用某些服务以及像手机这样的平台强制执行异步。我们很少通过使用异步来调整。
的[pfxteam博客](http://msdn.microsoft.com/en-us/magazine/jj133817.aspx)包含在这方面的一些有趣的信息: *“请注意,我们没有添加的异步版本API的粒度非常小,如TextReader.Peek,原因是异步API还会增加一些开销,并且我们希望防止开发人员误入歧途,这也意味着我们专门决定不提供方法的异步版本在BinaryReader或BinaryWriter .... * –