Freigeben über


FileStream.EndWrite(IAsyncResult) Methode

Definition

Beendet einen asynchronen Schreibvorgang und blockiert, bis die E/A-Operation abgeschlossen wurde. (Verwenden Sie stattdessen 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 von BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) für diese Klasse erstellt.

Der Stream ist geschlossen, oder ein interner Fehler ist aufgetreten.

Beispiele

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

   static void EndWriteCallback( IAsyncResult^ asyncResult )
   {
      State^ tempState = dynamic_cast<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, gcnew AsyncCallback( &FStream::EndReadCallback ), tempState );
      
      // Concurrently do other work, such as 
      // logging the write operation.
   }

};
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 der .NET Framework 4 und früheren Versionen erforderlich, wie z. B. BeginWrite und EndWrite , asynchrone Datei-Vorgänge zu implementieren. Diese Methoden sind weiterhin im .NET Framework 4.5 verfügbar, um Legacycode zu unterstützen. Die neuen asynchronen Methoden wie ReadAsync, WriteAsync, CopyToAsyncund FlushAsynchelfen Ihnen jedoch, asynchrone Dateivorgänge einfacher zu implementieren.

Diese Methode überschreibt EndWrite.

EndWrite muss für jede IAsyncResult von BeginWritegenau einmal aufgerufen werden. EndWrite wird blockiert, bis der E/A-Vorgang abgeschlossen ist.

Gilt für:

Weitere Informationen