FileStream.EndWrite(IAsyncResult) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非同期書き込み操作を終了し、I/O 操作が完了するまでブロックします。 (代わりに WriteAsync(Byte[], Int32, Int32, CancellationToken) を使用することを検討してください)。
public:
override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite(IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)
パラメーター
- asyncResult
- IAsyncResult
保留中の非同期 I/O 要求。
例外
asyncResult は nullです。
この IAsyncResult オブジェクトは、このクラスで BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) を呼び出すことによって作成されませんでした。
EndWrite(IAsyncResult) は複数回呼び出されます。
ストリームが閉じているか、内部エラーが発生しました。
例
このコード例は、 FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) コンストラクターに提供されるより大きな例の一部です。
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.
}
let endWriteCallback (asyncResult: IAsyncResult) =
let tempState = asyncResult.AsyncState :?> State
let fStream = tempState.FStream
fStream.EndWrite asyncResult
// Asynchronously read back the written data.
fStream.Position <- 0
let asyncResult =
fStream.BeginRead(tempState.ReadArray, 0, tempState.ReadArray.Length, AsyncCallback endReadCallback, tempState)
// Concurrently do other work, such as
// logging the write operation.
()
Private Shared Sub EndWriteCallback(asyncResult As IAsyncResult)
Dim tempState As State = _
DirectCast(asyncResult.AsyncState, State)
Dim fStream As FileStream = tempState.FStream
fStream.EndWrite(asyncResult)
' Asynchronously read back the written data.
fStream.Position = 0
asyncResult = fStream.BeginRead( _
tempState.ReadArray, 0 , tempState.ReadArray.Length, _
AddressOf EndReadCallback, tempState)
' Concurrently do other work, such as
' logging the write operation.
End Sub
注釈
.NET Framework 4 以前のバージョンでは、 BeginWrite や EndWrite などのメソッドを使用して非同期ファイル操作を実装する必要があります。 これらのメソッドは、レガシ コードをサポートするために .NET Framework 4.5 で引き続き使用できます。ただし、ReadAsync、WriteAsync、CopyToAsync、FlushAsync などの新しい非同期メソッドは、非同期ファイル操作をより簡単に実装するのに役立ちます。
このメソッドは、EndWrite をオーバーライドします。
EndWriteは、IAsyncResultからBeginWriteごとに 1 回だけ呼び出す必要があります。 EndWrite は、I/O 操作が完了するまでブロックします。