FileStream.EndWrite(IAsyncResult) Methode

Definition

Beendet einen asynchronen Schreibvorgang und blockiert, bis der E/A-Vorgang abgeschlossen ist. (Erwägen Sie stattdessen die Verwendung 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)

Parameter

asyncResult
IAsyncResult

Die ausstehende asynchrone E/A-Anforderung.

Ausnahmen

asyncResult ist null.

Dieses IAsyncResult Objekt wurde nicht durch Aufrufen BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) dieser Klasse erstellt.

Der Datenstrom ist geschlossen, oder es ist ein interner Fehler aufgetreten.

Beispiele

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für den FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) Konstruktor bereitgestellt wird.

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

Hinweise

In .NET Framework 4 und früheren Versionen müssen Sie Methoden wie BeginWrite und EndWrite zum Implementieren asynchroner Dateivorgänge verwenden. Diese Methoden sind weiterhin im .NET Framework 4.5 verfügbar, um Legacycode zu unterstützen. Die neuen asynchronen Methoden wie ReadAsync, WriteAsync, CopyToAsync und FlushAsync helfen Ihnen, asynchrone Dateivorgänge einfacher zu implementieren.

Diese Methode überschreibt EndWrite.

EndWritemuss genau einmal pro Jahr IAsyncResult aufgerufen werden.BeginWrite EndWrite wird blockiert, bis der E/A-Vorgang abgeschlossen ist.

Gilt für:

Weitere Informationen