FileStream.EndWrite(IAsyncResult) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Finaliza una operación de escritura asincrónica y bloquea hasta que se complete la operación de E/S. (Considere la posibilidad de usar WriteAsync(Byte[], Int32, Int32, CancellationToken) en su lugar).
public:
override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite(IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)
Parámetros
- asyncResult
- IAsyncResult
Solicitud de E/S asincrónica pendiente.
Excepciones
asyncResult es null.
Este IAsyncResult objeto no se creó llamando a BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) en esta clase.
EndWrite(IAsyncResult) se llama varias veces.
Se ha cerrado la secuencia o se ha producido un error interno.
Ejemplos
Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el 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
Comentarios
En .NET Framework 4 y versiones anteriores, tiene que usar métodos como BeginWrite e EndWrite implementar operaciones asincrónicas de archivos. Estos métodos siguen estando disponibles en .NET Framework 4.5 para admitir código heredado; sin embargo, los nuevos métodos asincrónicos, como ReadAsync, WriteAsync, CopyToAsync y FlushAsync, le ayudarán a implementar operaciones de archivos asincrónicas con mayor facilidad.
Este método invalida EndWrite.
EndWrite se debe llamar exactamente una vez en cada IAsyncResult desde BeginWrite. EndWrite se bloqueará hasta que se haya completado la operación de E/S.