Compartir a través de


BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Método

Definición

Comienza una operación de lectura asincrónica. (Considere usar ReadAsync(Byte[], Int32, Int32, CancellationToken) en su lugar).

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public override IAsyncResult BeginRead (byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

buffer
Byte[]

El búfer en el que se leen los datos.

offset
Int32

Posición de desplazamiento en bytes de buffer donde se comienza a escribir los datos leídos de la secuencia.

count
Int32

Número máximo de bytes que se pueden leer.

callback
AsyncCallback

Devolución de llamada asincrónica opcional, a la que se llamará cuando haya finalizado la lectura.

state
Object

Objeto proporcionado por el usuario que distingue esta solicitud de lectura asincrónica de otras.

Devoluciones

Un objeto que representa la lectura asincrónica, que puede hallarse aún pendiente.

Excepciones

buffer es null.

offset o count es negativo.

Se intentó realizar una lectura asincrónica después del final del flujo.

La longitud del búfer menos offset es menor que count.

La secuencia actual no admite la operación de escritura.

Comentarios

En .NET Framework 4 y versiones anteriores, tiene que usar métodos como BeginRead y EndRead para implementar operaciones de archivos asincrónicas. 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, WriteAsyncy FlushAsync, le ayudan a implementar operaciones asincrónicas de archivos más fácilmente.

EndWrite se debe llamar exactamente una vez para cada llamada a BeginRead. Si no finaliza un proceso de lectura antes de comenzar otra lectura, puede provocar un comportamiento no deseado, como interbloqueo.

Nota

Use la CanRead propiedad para determinar si la instancia actual admite la lectura.

EndRead se debe llamar a con esto IAsyncResult para averiguar cuántos bytes se leyeron.

Se aplica a