Compartir a través de


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

Definición

Inicia una operación de lectura asincrónica. (Considere la posibilidad de 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[]

Búfer en el que se van a leer los datos.

offset
Int32

Desplazamiento de bytes en el buffer que se van a empezar a escribir datos leídos desde la secuencia.

count
Int32

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

callback
AsyncCallback

Se llamará a una devolución de llamada asincrónica opcional cuando se complete la lectura.

state
Object

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

Devoluciones

Objeto que representa la lectura asincrónica, que todavía podría estar pendiente.

Excepciones

buffer es null.

offset o count es negativo.

Intentó una lectura asincrónica más allá del final de la secuencia.

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

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

Comentarios

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