CryptoStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inizia un'operazione di lettura asincrona. Si consiglia di usare ReadAsync.
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);
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 dei byte nel buffer
da cui iniziare la scrittura dei dati letti dal flusso.
- count
- Int32
Numero massimo di byte da leggere.
- callback
- AsyncCallback
Callback asincrono facoltativo, da chiamare quando la lettura è completa.
- state
- Object
Oggetto fornito dall'utente che distingue questa specifica richiesta di lettura asincrona da altre richieste.
Restituisce
Oggetto IAsyncResult che rappresenta la lettura asincrona, che può essere ancora in sospeso.
Eccezioni
È stato eseguito un tentativo di lettura asincrona oltre la fine del flusso o si è verificato un errore del disco.
Uno o più argomenti non sono validi.
Sono stati chiamati dei metodi dopo la chiusura del flusso.
L'implementazione corrente di Stream
non supporta l'operazione di lettura.
Commenti
Importante
A partire da .NET 6, questo metodo potrebbe non leggere quanti byte sono stati richiesti. Per altre informazioni, vedere Letture parziali e zero byte in DeflateStream, GZipStream e CryptoStream.
In .NET Framework 4 e versioni precedenti è necessario usare metodi come BeginRead e EndRead per implementare operazioni di I/O asincrone. Questi metodi sono ancora disponibili nelle versioni correnti per supportare il codice legacy; Tuttavia, i nuovi metodi asincroni, ad esempio ReadAsync, , WriteAsyncCopyToAsynce , FlushAsyncconsentono di implementare operazioni di I/O asincrone più facilmente.
Passare il IAsyncResult
valore restituito al EndRead metodo del flusso per determinare il numero di byte letti e per rilasciare le risorse del sistema operativo usate per la lettura.
EndRead deve essere chiamato una sola volta per ogni chiamata a BeginRead. È possibile eseguire questa operazione usando lo stesso codice chiamato BeginRead
o in un callback passato a BeginRead
.
La posizione corrente nel flusso viene aggiornata quando viene eseguita la lettura asincrona o la scrittura, non quando l'operazione di I/O viene completata.
Più richieste asincrone simultanee eseguono il rendering dell'ordine di completamento della richiesta incerto.
Utilizzare la proprietà per determinare se l'istanza CanRead corrente supporta la lettura.
Se un flusso è chiuso o si passa un argomento non valido, le eccezioni vengono generate immediatamente da BeginRead
. Errori che si verificano durante una richiesta di lettura asincrona, ad esempio un errore del disco durante la richiesta di I/O, si verificano nel thread del pool di thread e generano eccezioni quando si chiama EndRead
.