FileStream.EndWrite(IAsyncResult) Methode

Definitie

Hiermee beëindigt u een asynchrone schrijfbewerking en blokkeert u deze totdat de I/O-bewerking is voltooid. (Overweeg in plaats daarvan om te gebruiken 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)

Parameters

asyncResult
IAsyncResult

De in behandeling zijnde asynchrone I/O-aanvraag.

Uitzonderingen

asyncResult is null.

Dit IAsyncResult object is niet gemaakt door deze klasse aan te roepen BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) .

EndWrite(IAsyncResult) wordt meerdere keren aangeroepen.

De stream is gesloten of er is een interne fout opgetreden.

Voorbeelden

Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) constructor.

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

Opmerkingen

In de .NET Framework 4- en eerdere versies moet u methoden zoals BeginWrite en EndWrite gebruiken om asynchrone bestandsbewerkingen te implementeren. Deze methoden zijn nog steeds beschikbaar in het .NET Framework 4.5 ter ondersteuning van verouderde code. De nieuwe asynchrone methoden, zoals ReadAsync, WriteAsync, CopyToAsync en FlushAsync, helpen u bij het eenvoudiger implementeren van asynchrone bestandsbewerkingen.

Deze methode overschrijft EndWrite.

EndWrite moet precies één keer worden aangeroepen op elk IAsyncResult van BeginWrite. EndWrite wordt geblokkeerd totdat de I/O-bewerking is voltooid.

Van toepassing op

Zie ook