Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menyalin kandungan aliran dengan cekap dalam .net?

Bagaimana cara menyalin kandungan aliran dengan cekap dalam .net?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-31 09:21:12596semak imbas

How to Efficiently Copy Stream Contents in .NET?

Kaedah replikasi yang cekap kandungan kandungan aliran

dalam pengaturcaraan, menyalin kandungan aliran ke yang lain adalah operasi biasa. .NET menyediakan beberapa kaedah untuk melaksanakan operasi ini.

Gunakan stream.copyToAsync method (.net 4.5)

.net 4.5 stream.copyToasync Kaedah memperkenalkan kaedah kandungan aliran replikasi asynchronous:

Kaedah ini mengembalikan tugas, yang boleh menunggu untuk menyelesaikannya untuk memastikan operasi itu selesai. Ia mengekalkan konteks dan membolehkan kod ikut -up untuk terus melaksanakan pada benang yang sama.

<code class="language-csharp">input.CopyToAsync(output);</code>
Gunakan kaedah stream.copyto (.net 4.0)

Dalam versi .net 4.0 dan lebih tinggi, kaedah stream.copyto menyediakan salinan aliran segerak:

Pelaksanaan penyesuaian yang disesuaikan.

Untuk versi sebelumnya .NET 3.5, tiada kaedah terbina. Anda mesti menggunakan kandungan salinan manual gelung:

<code class="language-csharp">input.CopyTo(output);</code>

Langkah berjaga -jaga

Saiz penampan dalam copystream boleh diselaraskan untuk mengoptimumkan prestasi.

<code class="language-csharp">public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[32768];
    int read;
    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, read);
    }
}</code>
Sila ambil perhatian bahawa panjang aliran mungkin tidak tersedia untuk beberapa realisasi aliran.

Atas ialah kandungan terperinci Bagaimana cara menyalin kandungan aliran dengan cekap dalam .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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