Condividi tramite


BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metodo

Definizione

Avvia un'operazione di lettura asincrona. Prendere invece in considerazione l'uso ReadAsync(Byte[], Int32, Int32, CancellationToken) di .

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

Parametri

buffer
Byte[]

Buffer in cui leggere i dati.

offset
Int32

Offset di byte in in buffer corrispondenza del quale iniziare a scrivere i dati letti dal flusso.

count
Int32

Numero massimo di byte da leggere.

callback
AsyncCallback

Callback asincrono facoltativo da chiamare al termine della lettura.

state
Object

Oggetto fornito dall'utente che distingue questa particolare richiesta di lettura asincrona da altre richieste.

Restituisce

Oggetto che rappresenta la lettura asincrona, che potrebbe essere ancora in sospeso.

Eccezioni

buffer è null.

offset o count è negativo.

Tentativo di lettura asincrona oltre la fine del flusso.

La lunghezza del buffer meno offset è minore di count.

Il flusso corrente non supporta l'operazione di lettura.

Commenti

In .NET Framework 4 e versioni precedenti è necessario usare metodi come BeginRead e EndRead per implementare operazioni di file asincrone. Questi metodi sono ancora disponibili in .NET Framework 4.5 per supportare il codice legacy; Tuttavia, i nuovi metodi asincroni, ad esempio ReadAsync, WriteAsynce FlushAsync, consentono di implementare più facilmente operazioni di file asincrone.

EndWrite deve essere chiamato esattamente una volta per ogni chiamata a BeginRead. L'esito negativo di un processo di lettura prima di iniziare un'altra lettura può causare comportamenti indesiderati, ad esempio deadlock.

Annotazioni

Utilizzare la CanRead proprietà per determinare se l'istanza corrente supporta la lettura.

EndRead deve essere chiamato con questo IAsyncResult per scoprire quanti byte sono stati letti.

Si applica a