BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) 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í.
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.