我们如何知道IO是阻塞还是非阻塞

Tay*_*Wen 5 c#

阅读C#文档,我想知道如何知道IO是否阻塞.例如BinaryWriter.Write方法,我找不到关于方法是否阻塞的文档的任何信息.

usr*_*usr 6

BinaryWriter.Write仅在其工作完成时返回.这使它阻止.等待时间可能无限制.

异步方法通常很容易被发现,因为它们返回TaskIAsyncResult(对应于旧的APM模式).它们也被恰当地命名(BeginXxxXxxAsync).当这样的方法返回时,你还没有结果.这表明计算仍未完成.

docs为异步方法调用此属性.因为几乎所有方法都是阻塞和同步的(例如所有字符串方法),这种行为在文档中没有提到.这是默认值.