文档简单地说ReadBlock是
“Read的阻止版本”
但这是什么意思?
之前有人问过这个问题,但是,是吗?
http://www.pcreview.co.uk/forums/thread-1385785.php
那个回答说的人
基本上,这意味着您不能依赖StreamReader.ReadBlock 返回,直到它的读数和你要求的一样多,或者 它已到达流的末尾。
我是否正确理解这是必需的,因为Read可能无法提供您要求的所有内容?那只是因为它返回0并不意味着你到达文件的末尾?
所以这意味着检查返回的字节数以外的其他内容(EndOfStream?)或使用ReadBlock?
答案 0 :(得分:32)
ReadBlock并不意味着它是线程安全的。如果你使用Reflector来查看StreamReader.ReadBlock(它继承自TextReader.ReadBlock)的实现,它所做的就是多次调用“Read”方法,直到“Read”方法返回0或者我们读取为请求的多个字节。这是必需的,因为“Read”方法不一定会返回您要求的字节数。