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 tutti i byte richiesti. Per altre informazioni, vedere Letture di byte parziali e zero 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, CopyToAsyncWriteAsync, e FlushAsync, consentono di implementare più facilmente operazioni di I/O asincrone.
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 volta per ogni chiamata a BeginRead. A tale scopo, è possibile usare lo stesso codice che ha chiamato BeginRead
o in un callback passato a BeginRead
.
La posizione corrente nel flusso viene aggiornata quando viene eseguita la lettura o la scrittura asincrona, non al termine dell'operazione di I/O.
Più richieste asincrone simultanee rendono incerto l'ordine di completamento della richiesta.
Utilizzare la CanRead proprietà per determinare se l'istanza corrente supporta la lettura.
Se un flusso viene chiuso o si passa un argomento non valido, le eccezioni vengono generate immediatamente da BeginRead
. Gli 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
.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per