ホームページ > バックエンド開発 > C++ > .NETでストリームコンテンツを効率的にコピーする方法は?

.NETでストリームコンテンツを効率的にコピーする方法は?

Barbara Streisand
リリース: 2025-01-31 09:06:08
オリジナル
971 人が閲覧しました

How to Efficiently Copy Stream Content in .NET?

.NETでコピーする効率的なストリームコンテンツ:比較分析

ストリーム間のデータの移動は、特にデータ処理アプリケーション内の.NET開発における基本的な操作です。 この記事では、効率的なストリームコピーのいくつかの方法を調査し、その長所と短所を強調しています。

最適なアプローチ:(.NET 4.5以降)Stream.CopyToAsync

最新の.NETアプリケーション(4.5以降)の場合、

は好ましいソリューションとして表示されます。 その非同期性は、最適なパフォーマンスを保証し、ブロックを防ぎ、同時運用を可能にします。 このメソッドはaStream.CopyToAsyncを返し、非同期ワークフローへのシームレスな統合を可能にします。 使用法は簡単です:Task

<code class="language-csharp">await input.CopyToAsync(output);</code>
ログイン後にコピー

同期コピー:(.net 4.0以降)Stream.CopyTo .NET 4.0以降での同期ストリームコピーの場合、

は、ブロッキングではありますが、よりシンプルな代替品を提供します。 入力から出力ストリームにデータを直接転送します。

Stream.CopyTo

手動実装(pre-.NET 4.0):
<code class="language-csharp">input.CopyTo(output);</code>
ログイン後にコピー

.NET 4.0以前は、開発者が手動でストリームコピーを実装する必要がありました。これには、バッファーを使用して、チャンクでデータを読み書きすることが含まれていました。より大きな制御を提供する一方で、このアプローチは組み込みの方法よりも効率が低いです。

適切な方法の選択:

<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>
ログイン後にコピー
最適な選択は、.NETバージョンとアプリケーションの要件に依存します。 効率と応答性を優先する非同期操作には

が推奨されます。 シンプルさが望ましい場合の同期シナリオに適しています。手動の方法は、古い.NETバージョンの実行可能なオプションのままですが、その効率が低いことを考慮する必要があります。

以上が.NETでストリームコンテンツを効率的にコピーする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート