CryptoStream.BeginWrite(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 scrittura asincrona. Si consiglia di usare WriteAsync.
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametri
- buffer
- Byte[]
Buffer da cui scrivere i dati.
- offset
- Int32
Offset dei byte in buffer
da cui iniziare la scrittura.
- count
- Int32
Numero massimo di byte da scrivere.
- callback
- AsyncCallback
Callback asincrono facoltativo, da chiamare quando la scrittura è completa.
- state
- Object
Oggetto fornito dall'utente che distingue questa specifica richiesta di scrittura asincrona da altre richieste.
Restituisce
Oggetto IAsyncResult
che rappresenta la scrittura asincrona, che può essere ancora in sospeso.
Eccezioni
È stato eseguito un tentativo di scrittura 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 scrittura.
Commenti
In .NET Framework 4 e versioni precedenti è necessario usare metodi come BeginWrite e EndWrite 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 l'oggetto IAsyncResult
restituito dal metodo corrente per EndWrite assicurarsi che la scrittura venga completata e libera le risorse in modo appropriato.
EndWrite deve essere chiamato una volta per ogni chiamata a BeginWrite. A tale scopo, è possibile usare lo stesso codice che ha chiamato BeginWrite
o in un callback passato a BeginWrite
. Se si verifica un errore durante una scrittura asincrona, non verrà generata un'eccezione finché EndWrite
non viene chiamata con l'oggetto IAsyncResult
restituito da questo metodo.
Se un flusso è scrivibile, la scrittura alla fine del flusso espande il flusso.
La posizione corrente nel flusso viene aggiornata quando si rilascia la lettura o la scrittura asincrona, non quando l'operazione di I/O viene completata. Più richieste asincrone simultanee rendono incerto l'ordine di completamento della richiesta.
Utilizzare la CanWrite proprietà per determinare se l'istanza corrente supporta la scrittura.
Se un flusso viene chiuso o si passa un argomento non valido, le eccezioni vengono generate immediatamente da BeginWrite
. Gli errori che si verificano durante una richiesta di scrittura 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 EndWrite
.