FileStream.EndWrite(IAsyncResult) FileStream.EndWrite(IAsyncResult) FileStream.EndWrite(IAsyncResult) FileStream.EndWrite(IAsyncResult) Method

Definizione

Termina un'operazione di scrittura asincrona, rimanendo bloccato fino al completamento dell'operazione di I/O.Ends an asynchronous write operation and blocks until the I/O operation is complete. (In alternativa, si consideri l'uso di WriteAsync(Byte[], Int32, Int32, CancellationToken).)(Consider using WriteAsync(Byte[], Int32, Int32, CancellationToken) instead.)

public:
 override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite (IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)

Parametri

asyncResult
IAsyncResult IAsyncResult IAsyncResult IAsyncResult

Richiesta di I/O asincrona in sospeso.The pending asynchronous I/O request.

Eccezioni

Il flusso è chiuso o si è verificato un errore interno.The stream is closed or an internal error has occurred.

Esempi

Questo esempio di codice fa parte di un esempio più ampio fornito FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) per il costruttore.This code example is part of a larger example provided for the FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) constructor.

   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.
}
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

Commenti

In .NET Framework 4 e versioni precedenti è necessario usare metodi quali BeginWrite e EndWrite per implementare operazioni asincrone sui file.In the .NET Framework 4 and earlier versions, you have to use methods such as BeginWrite and EndWrite to implement asynchronous file operations. Questi metodi sono ancora disponibili in per .NET Framework 4.5.NET Framework 4.5 supportare il codice legacy. Tuttavia, i nuovi metodi asincroni, ReadAsyncad esempio, WriteAsync CopyToAsync, e FlushAsync, consentono di implementare più facilmente le operazioni asincrone sui file.These methods are still available in the .NET Framework 4.5.NET Framework 4.5 to support legacy code; however, the new async methods, such as ReadAsync, WriteAsync, CopyToAsync, and FlushAsync, help you implement asynchronous file operations more easily.

Questo metodo esegue l'override del metodo EndWrite.This method overrides EndWrite.

EndWritedeve essere chiamato esattamente una volta per IAsyncResult ogni BeginWriteda.EndWrite must be called exactly once on every IAsyncResult from BeginWrite. EndWritesi bloccherà fino al completamento dell'operazione di I/O.EndWrite will block until the I/O operation has completed.

Si applica a

Vedi anche