英語で読む

次の方法で共有


Stream.CopyToAsync メソッド

定義

現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。

オーバーロード

CopyToAsync(Stream, Int32, CancellationToken)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたバッファー サイズとキャンセル トークンを使用して、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

CopyToAsync(Stream, CancellationToken)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたキャンセル トークンを使用して、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

CopyToAsync(Stream)

現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

CopyToAsync(Stream, Int32)

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

CopyToAsync(Stream, Int32, CancellationToken)

ソース:
Stream.cs
ソース:
Stream.cs
ソース:
Stream.cs

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたバッファー サイズとキャンセル トークンを使用して、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

C#
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize, System.Threading.CancellationToken cancellationToken);

パラメーター

destination
Stream

現在のストリームの内容のコピー先のストリーム。

bufferSize
Int32

バッファーのサイズ (バイト数)。 これは、0 より大きい値である必要があります。 既定のサイズは 81920 です。

cancellationToken
CancellationToken

キャンセル要求を監視するためのトークン。 既定値は None です。

戻り値

非同期のコピー操作を表すタスク。

属性

例外

destinationnullです。

buffersize が負の値またはゼロです。

現在のストリームまたはコピー先ストリームは破棄されます。

現在のストリームが読み取りをサポートしていないか、コピー先のストリームが書き込みをサポートしていません。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

CopyToAsyncメソッドを使用すると、メイン スレッドをブロックすることなく、リソースを大量に消費する I/O 操作を実行できます。 このパフォーマンスに関する考慮事項は、時間のかかるストリーム操作によって UI スレッドがブロックされ、アプリが動作していないと見なされる可能性がある Windows 8.x Store アプリまたはデスクトップ アプリで特に重要です。 非同期メソッドは、Visual Basic および C# の および await キーワードと組み合わせてasync使用されます。

操作が完了する前に取り消された場合、返されるタスクには プロパティの値がCanceledStatus含まれます。

コピーは、現在のストリーム内の現在の位置から開始されます。

2 つのストリーム間でコピーする例については、 オーバーロードを CopyToAsync(Stream) 参照してください。

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって CopyTo(Stream, Int32)スローされる例外に関するページを参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CopyToAsync(Stream, CancellationToken)

ソース:
Stream.cs
ソース:
Stream.cs
ソース:
Stream.cs

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、指定されたキャンセル トークンを使用して、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

C#
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, System.Threading.CancellationToken cancellationToken);

パラメーター

destination
Stream

現在のストリームの内容のコピー先のストリーム。

cancellationToken
CancellationToken

キャンセル要求を監視するためのトークン。 既定値は None です。

戻り値

非同期のコピー操作を表すタスク。

例外

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

注釈

CopyToAsyncメソッドを使用すると、メイン スレッドをブロックすることなく、リソースを大量に消費する I/O 操作を実行できます。 このパフォーマンスに関する考慮事項は、時間のかかるストリーム操作によって UI スレッドがブロックされ、アプリが動作していないと見なされる可能性がある Windows 8.x Store アプリまたはデスクトップ アプリで特に重要です。 非同期メソッドは、Visual Basic および C# の および await キーワードと組み合わせてasync使用されます。

操作が完了する前に取り消された場合、返されるタスクには プロパティの値がCanceledStatus含まれます。

コピーは、現在のストリーム内の現在の位置から開始されます。

2 つのストリーム間でコピーする例については、 オーバーロードを CopyToAsync(Stream) 参照してください。

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって CopyTo(Stream)スローされる例外に関するページを参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

CopyToAsync(Stream)

ソース:
Stream.cs
ソース:
Stream.cs
ソース:
Stream.cs

現在のストリームからすべてのバイトを非同期に読み取り、別のストリームに書き込みます。 両方のストリーム位置は、コピーされたバイト数だけ進みます。

C#
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination);

パラメーター

destination
Stream

現在のストリームの内容のコピー先のストリーム。

戻り値

非同期のコピー操作を表すタスク。

属性

例外

destinationnullです。

現在のストリームまたはコピー先ストリームは破棄されます。

現在のストリームが読み取りをサポートしていないか、コピー先のストリームが書き込みをサポートしていません。

次の例では、2 つの FileStream オブジェクトを使用して、あるディレクトリから別のディレクトリにファイルを非同期的にコピーする方法を示します。 FileStream クラスは Stream クラスから派生します。 コントロールの Click イベント ハンドラーは、非同期メソッドを Button 呼び出すので、 async 修飾子でマークされていることに注意してください

C#
using System;
using System.Threading.Tasks;
using System.Windows;
using System.IO;

namespace WpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            string StartDirectory = @"c:\Users\exampleuser\start";
            string EndDirectory = @"c:\Users\exampleuser\end";

            foreach (string filename in Directory.EnumerateFiles(StartDirectory))
            {
                using (FileStream SourceStream = File.Open(filename, FileMode.Open))
                {
                    using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\'))))
                    {
                        await SourceStream.CopyToAsync(DestinationStream);
                    }
                }
            }
        }
    }
}

注釈

CopyToAsyncメソッドを使用すると、メイン スレッドをブロックすることなく、リソースを大量に消費する I/O 操作を実行できます。 このパフォーマンスに関する考慮事項は、時間のかかるストリーム操作によって UI スレッドがブロックされ、アプリが動作していないと見なされる可能性がある Windows 8.x Store アプリまたはデスクトップ アプリで特に重要です。 非同期メソッドは、Visual Basic および C# の および await キーワードと組み合わせてasync使用されます。

コピーは、現在のストリーム内の現在の位置から開始されます。

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって CopyTo(Stream)スローされる例外に関するページを参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

CopyToAsync(Stream, Int32)

ソース:
Stream.cs
ソース:
Stream.cs
ソース:
Stream.cs

指定されたバッファー サイズを使用して、現在のストリームからバイトを非同期に読み取り、別のストリームに書き込みます。 どちらのストリーム位置も、コピーされたバイト数だけ進みます。

C#
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public System.Threading.Tasks.Task CopyToAsync (System.IO.Stream destination, int bufferSize);

パラメーター

destination
Stream

現在のストリームの内容のコピー先のストリーム。

bufferSize
Int32

バッファーのサイズ (バイト数)。 これは、0 より大きい値である必要があります。 既定のサイズは 81920 です。

戻り値

非同期のコピー操作を表すタスク。

属性

例外

destinationnullです。

buffersize が負の値またはゼロです。

現在のストリームまたはコピー先ストリームは破棄されます。

現在のストリームが読み取りをサポートしていないか、コピー先のストリームが書き込みをサポートしていません。

注釈

CopyToAsyncメソッドを使用すると、メイン スレッドをブロックすることなく、リソースを大量に消費する I/O 操作を実行できます。 このパフォーマンスに関する考慮事項は、時間のかかるストリーム操作によって UI スレッドがブロックされ、アプリが動作していないと見なされる可能性がある Windows 8.x Store アプリまたはデスクトップ アプリで特に重要です。 非同期メソッドは、Visual Basic および C# の および await キーワードと組み合わせてasync使用されます。

コピーは、現在のストリーム内の現在の位置から開始されます。

2 つのストリーム間でコピーする例については、 オーバーロードを CopyToAsync(Stream) 参照してください。

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって CopyTo(Stream, Int32)スローされる例外に関するページを参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0