.NETでコピーする効率的なストリームコンテンツ:比較分析
ストリーム間のデータの移動は、特にデータ処理アプリケーション内の.NET開発における基本的な操作です。 この記事では、効率的なストリームコピーのいくつかの方法を調査し、その長所と短所を強調しています。
最適なアプローチ:(.NET 4.5以降)Stream.CopyToAsync
は好ましいソリューションとして表示されます。 その非同期性は、最適なパフォーマンスを保証し、ブロックを防ぎ、同時運用を可能にします。 このメソッドはaStream.CopyToAsync
を返し、非同期ワークフローへのシームレスな統合を可能にします。 使用法は簡単です:Task
<code class="language-csharp">await input.CopyToAsync(output);</code>
同期コピー:(.net 4.0以降)Stream.CopyTo
.NET 4.0以降での同期ストリームコピーの場合、
Stream.CopyTo
<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でストリームコンテンツを効率的にコピーする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。