Wie Adam Sitnik, Senior Software Engineer .NET Libraries bei Microsoft, berichtet, ist die neue .NET-6-Klasse FileStream viel schneller und zuverlässiger als ihre Vorläufer. Außerdem gibt es in .NET 6 jetzt ein API für gleichzeitige Lese- und Schreibvorgänge.
Microsoft hat in .NET 6 mehrere Verbesserungen an der File-IO-Bibliothek vorgenommen. Unter anderem die folgenden:
Async file IO soll jetzt einigen Male schneller arbeiten und ohne Zuweisung auskommen.
Async File IO unter Windows verwendet keine blockierenden APIs mehr.
Neue zustandslose und Offset-basierte APIs für Thread-sicheres File IO wurden eingeführt. Einige Überladungen akzeptieren mehrere Puffer gleichzeitig, wodurch die Anzahl der Systemaufrufe reduziert werden kann.
Es wurden neue APIs für die Angabe der Dateivorbelegungsgröße eingeführt. Sowohl die Leistung als auch die Zuverlässigkeit können durch ihre Verwendung verbessert werden.
FileStream.Position wird nicht mehr mit dem Betriebssystem synchronisiert, sondern nur noch im Speicher verfolgt.
FileStream.Position wird nach Abschluss der asynchronen Operation aktualisiert, nicht mehr vor deren Start.
Benutzer können den .NET-5-Kompatibilitätsmodus über eine Konfigurationsdatei oder eine Umgebungsvariable anfordern.
Das FileStream-Verhalten für Randfälle wurde für Windows und Unix angeglichen.
Tiefergehende Informationen dazu finden Sie in diesem Blogbeitrag von Adam Sitnik in Microsofts Devblog.