DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metodo

Definizione

Inizia un'operazione di scrittura asincrona. (Si consiglia di usare il metodo WriteAsync(Byte[], Int32, Int32).)

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parametri

arraybuffer
Byte[]

Buffer da cui scrivere i dati.

offset
Int32

Offset di byte da cui iniziare la scrittura.

count
Int32

Numero massimo di byte da scrivere.

asyncCallback
AsyncCallback

Callback asincrono facoltativo, da chiamare quando l'operazione di scrittura è completa.

asyncState
Object

Oggetto fornito dall'utente che distingue questa specifica richiesta di scrittura asincrona da altre richieste.

Restituisce

Oggetto che rappresenta l'operazione di scrittura asincrona che può essere ancora in sospeso.

Eccezioni

Il metodo ha tentato di scrivere in modo asincrono 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 DeflateStream non supporta l'operazione di scrittura.

Impossibile eseguire l'operazione di scrittura perché il flusso è chiuso.

Commenti

A partire da .NET Framework 4.5, è possibile eseguire operazioni di scrittura asincrone usando il WriteAsync metodo . Il BeginWrite metodo è ancora disponibile nelle versioni correnti per supportare il codice legacy. Tuttavia, è possibile implementare più facilmente le operazioni di I/O asincrone usando i nuovi metodi asincroni. Per altre informazioni, vedere I/O di file asincrono.

Passare l'oggetto IAsyncResult restituito dal metodo corrente per EndWrite assicurarsi che la scrittura venga completata e libera le risorse in modo appropriato. 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 un'operazione di 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 esegue l'operazione di lettura o scrittura asincrona, non al termine dell'operazione di I/O. Più richieste asincrone simultanee rendono incerto l'ordine di completamento della richiesta.

Utilizzare la CanWrite proprietà per determinare se l'oggetto corrente DeflateStream 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.

Si applica a