Ich verwende ein Package
mit dem folgenden Code geöffnetWarum schließt das Paket den zugrunde liegenden Stream nicht?
Package package = Package.Open(stream, fileMode, fileAccess);
wo stream
ist im Grunde ein MemoryStream
. Jetzt, wenn ich package.Close()
rufe, ist der Speicherstrom noch offen.
Wenn ich die überladene Methode für öffnen, wo ich einen Pfad zu einer Datei eingeben und das Paket schließen, wird die Datei Handle entsorgt. Wenn ich eine StreamReader
öffne und sie schließe, wird der zugrunde liegende Stream aufgelöst.
Warum enthält die Klasse Package
den zugrunde liegenden Stream nicht?
schließen und entsorgen. Wenn Sie sagen, dass noch offen ist, meinen Sie, dass 'CanRead' /' CanSeek'/'CanWrite' Eigenschaften immer noch wahr sind oder auf die Sie noch zugreifen können der 'MemoryStream' Puffer? –
@FedericoDipuma Ich habe eine spezielle Klasse mit Speicher-Stream als Basis-Klasse, wo ich im Grunde warten auf den Stream zu schließen und dann etwas Arbeit (schreiben Sie es zurück in das Dateisystem). Dies passiert nicht, wenn der Stream nie geschlossen wird. – Yggdrasil