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

时间:2014-07-24 13:37:41

标签: c#

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

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:1)

由于它不提供BeginWrite及其相应的EndWrite方法,因此必须阻止。