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
Lepaskan: 2025-01-31 09:21:12
asal
646 orang telah melayarinya

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.

input.CopyToAsync(output);
Salin selepas log masuk
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:

input.CopyTo(output);
Salin selepas log masuk

<事> Langkah berjaga -jaga

Saiz penampan dalam copystream boleh diselaraskan untuk mengoptimumkan prestasi.

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);
    }
}
Salin selepas log masuk
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 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