英語で読む

次の方法で共有


FileStream.EndWrite(IAsyncResult) メソッド

定義

非同期の書き込み操作を終了し、I/O 操作が完了するまでブロックします。 (代わりに、WriteAsync(Byte[], Int32, Int32, CancellationToken) の使用を検討してください。)

C#
public override void EndWrite (IAsyncResult asyncResult);

パラメーター

asyncResult
IAsyncResult

保留中の非同期 I/O 要求。

例外

asyncResultnullです。

この IAsyncResult オブジェクトは、このクラスで BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) を呼び出すことによって作成されませんでした。

EndWrite(IAsyncResult) は複数回呼び出されます。

ストリームが閉じているか、内部エラーが発生しました。

このコード例は、コンストラクターに対して提供されるより大きな例の FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) 一部です。

C#
static void EndWriteCallback(IAsyncResult asyncResult)
{
    State tempState = (State)asyncResult.AsyncState;
    FileStream fStream = tempState.FStream;
    fStream.EndWrite(asyncResult);

    // Asynchronously read back the written data.
    fStream.Position = 0;
    asyncResult = fStream.BeginRead(
        tempState.ReadArray, 0 , tempState.ReadArray.Length,
        new AsyncCallback(EndReadCallback), tempState);

    // Concurrently do other work, such as
    // logging the write operation.
}

注釈

.NET Framework 4 以前のバージョンでは、 や などのBeginWriteEndWriteメソッドを使用して非同期ファイル操作を実装する必要があります。 これらのメソッドは、レガシ コードをサポートするために .NET Framework 4.5 で引き続き使用できます。ただし、、 WriteAsyncCopyToAsyncFlushAsyncなどのReadAsync新しい非同期メソッドを使用すると、非同期ファイル操作をより簡単に実装できます。

このメソッドは、EndWrite をオーバーライドします。

EndWriteは、 からBeginWriteごとに IAsyncResult 1 回だけ呼び出す必要があります。 EndWrite は、I/O 操作が完了するまでブロックします。

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 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 2.0, 2.1

こちらもご覧ください