Unterschied zwischen StreamReader.Read und StreamReader.ReadBlock
In der Dokumentation sagt einfach ReadBlock ist
"eine blockierende version von Lesen"
aber was bedeutet das?
Jemand anderes hat die Frage gestellt, bevor, aber, huh?
http://www.pcreview.co.uk/forums/thread-1385785.php
Der Kerl antwortete und Sprach
Im Grunde bedeutet es, dass Sie sich verlassen können StreamReader.ReadBlock nicht
Rückkehr, bis Sie entweder gelesen sind, so viel wie Sie gefragt haben, oder
es ist erreicht, das Ende des Streams.
Verstehe ich richtig, dass dies erforderlich ist, weil Lesen ist, kann nicht geben Ihnen alles, was Sie gefragt? Und nur weil es 0 zurückgibt, bedeutet NICHT, Sie erreicht das Ende der Datei?
So bedeutet dies, prüfen etwas anderes als die Anzahl der bytes zurückgegeben (EndOfStream?) oder verwenden Sie ReadBlock statt?
InformationsquelleAutor der Frage J M | 2009-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
ReadBlock bedeutet nicht, es ist thread-sicher. Wenn Sie Reflektor Blick auf die Umsetzung der StreamReader.ReadBlock (das ist geerbt von TextReader.ReadBlock), alle es tut, ist, mehrere Aufrufe für die "Read" - Methode, bis entweder die "Read" - Methode gibt 0 zurück, oder wir gelesen haben, wie viele bytes wie angefordert. Dies ist nötig, denn die "Read" - Methode wird nicht unbedingt zurück, wie viele bytes, wie Sie gefragt haben.
InformationsquelleAutor der Antwort David