Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menghalang StreamWriter daripada Menutup BaseStream Dasar?

Bagaimanakah Saya Boleh Menghalang StreamWriter daripada Menutup BaseStream Dasar?

Barbara Streisand
Lepaskan: 2025-01-12 08:03:43
asal
563 orang telah melayarinya

How Can I Prevent StreamWriter from Closing the Underlying BaseStream?

Kendalian strim: Putuskan StreamWriter daripada BaseStream

Terdapat dilema apabila menggunakan StreamWriter dan kaedah Close() atau Dispose()nya: kaedah ini juga menutup asas BaseStreamnya. Masalah timbul jika komponen luaran masih perlu mengakses StreamWriter selepas BaseStream menyelesaikan tugasnya.

Untuk menyelesaikan masalah ini, .NET Framework 4.5 dan lebih baru menyediakan pembina StreamWriter terbeban yang membolehkan anda menentukan bahawa BaseStream kekal terbuka:

<code class="language-csharp">StreamWriter(Stream stream, Encoding encoding, bool leaveOpen)</code>
Salin selepas log masuk

Pembina ini menerima parameter ketiga leaveOpen, yang lalai kepada false. Dengan menetapkan leaveOpen kepada true, anda memastikan bahawa apabila StreamWriter ditutup atau dilepaskan, BaseStream kekal terbuka.

Dalam versi terdahulu Rangka Kerja .NET (sebelum 4.5), memandangkan pembina terlebih beban ini tidak wujud, kaedah berikut boleh digunakan:

  • Elakkan daripada mengeluarkan StreamWriter: Jangan lepaskan StreamWriter, kosongkan sahaja. Ini akan mengeluarkan sebarang data penimbal tanpa menutup BaseStream.
  • Buat pembalut aliran : Laksanakan pembalut aliran tersuai yang mengabaikan panggilan Close() dan Dispose() sambil memproksi semua operasi lain ke BaseStream yang mendasari.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang StreamWriter daripada Menutup BaseStream Dasar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan