除了Flush()方法,我注意到Stream类还有一个FlushAsync()方法。在什么情况下您会使用FlushAsync()方法?刷新缓冲区是否如此昂贵以保证异步运行它?
是的,它可能非常昂贵,因为它实际上可能将数据写入底层媒体。
这些条件中的任何一个都可能为真:
它可能与任何其他写入操作一样昂贵,然后是Async版本(而且它有助于 API 一致性)。
如何FlushAsync()实现是...一个实现细节,它可能是Task线程池中的一个简单的东西或更复杂的东西(异步 I/O 可能涉及操作系统本身)。它甚至可能是同步的(想象一下刷新 a MemoryStream,它没有任何缓冲区)。