Opération Stream : dissocier StreamWriter de BaseStream
Il y a un dilemme lors de l'utilisation de StreamWriter
et de ses méthodes Close()
ou Dispose()
: ces méthodes ferment également leur BaseStream
sous-jacent. Des problèmes surviennent si des composants externes doivent encore accéder à StreamWriter
après que BaseStream
a terminé sa tâche.
Pour résoudre ce problème, .NET Framework 4.5 et versions ultérieures fournit un constructeur StreamWriter
surchargé qui vous permet de spécifier que le BaseStream
reste ouvert :
<code class="language-csharp">StreamWriter(Stream stream, Encoding encoding, bool leaveOpen)</code>
Ce constructeur accepte le troisième paramètre leaveOpen
, qui est par défaut false
. En réglant leaveOpen
sur true
, vous vous assurez que lorsque StreamWriter
est fermé ou relâché, BaseStream
reste ouvert.
Dans les versions antérieures du .NET Framework (antérieures à 4.5), ce constructeur surchargé n'existant pas, les méthodes suivantes peuvent être utilisées :
StreamWriter
, videz-le simplement. Cela libérera toutes les données mises en mémoire tampon sans fermer BaseStream
. Close()
et Dispose()
tout en transmettant toutes les autres opérations au BaseStream
sous-jacent. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!