阅读C#文档,我想知道如何知道IO是否阻塞。例如BinaryWriter.Write方法,我找不到关于方法是否阻塞的文档的任何信息。
答案 0 :(得分:6)
BinaryWriter.Write
仅在其工作完成时返回。这使它阻止。等待时间可能无限制。
异步方法通常很容易被发现,因为它们返回Task
或IAsyncResult
(对应于旧的APM模式)。它们也被恰当地命名(BeginXxx
或XxxAsync
)。当这样的方法返回时,你还没有结果。这表明计算仍未完成。
docs为异步方法调用此属性。因为几乎所有方法都是阻塞和同步的(例如所有字符串方法),所以这种行为在文档中没有提到。这是默认值。
答案 1 :(得分:1)
由于它不提供BeginWrite
及其相应的EndWrite
方法,因此必须阻止。