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

Definition

Påbörjar en asynkron skrivåtgärd. (Överväg att WriteAsync(Byte[], Int32, Int32) använda metoden i stället.)

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::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
Public Overrides Function BeginWrite (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parametrar

arraybuffer
Byte[]

Bufferten att skriva data från.

offset
Int32

Byteförskjutningen som ska börja skrivas från.

count
Int32

Det maximala antalet byte som ska skrivas.

asyncCallback
AsyncCallback

Ett valfritt asynkront återanrop som ska anropas när skrivåtgärden är klar.

asyncState
Object

Ett objekt som tillhandahålls av användaren och som skiljer den här specifika asynkrona skrivbegäran från andra begäranden.

Returer

Ett objekt som representerar den asynkrona skrivåtgärden, som fortfarande kan vänta.

Undantag

Metoden försökte skriva asynkront förbi strömmens slut, eller så uppstod ett diskfel.

Ett eller flera av argumenten är ogiltiga.

Metoder anropades efter att strömmen stängdes.

Den aktuella DeflateStream implementeringen stöder inte skrivåtgärden.

Det går inte att utföra skrivåtgärden eftersom strömmen är stängd.

Kommentarer

Från och med .NET Framework 4.5 kan du utföra asynkrona skrivåtgärder med hjälp av metoden WriteAsync. Metoden BeginWrite är fortfarande tillgänglig i aktuella versioner för att stödja äldre kod. Du kan dock implementera asynkrona I/O-åtgärder enklare med hjälp av de nya asynkrona metoderna. Mer information finns i Asynkron fil-I/O.

Skicka objektet IAsyncResult som returneras av den aktuella metoden för att EndWrite säkerställa att skrivningen slutförs och frigör resurser på rätt sätt. Du kan göra detta antingen med hjälp av samma kod som anropade BeginWrite eller i ett återanrop som skickades till BeginWrite. Om ett fel uppstår under en asynkron skrivåtgärd utlöses inte ett undantag förrän EndWrite det anropas med den IAsyncResult returnerade metoden.

Om en ström är skrivbar expanderar skrivning i slutet av strömmen strömmen.

Den aktuella positionen i strömmen uppdateras när du utfärdar den asynkrona läs- eller skrivåtgärden, inte när I/O-åtgärden är klar. Flera samtidiga asynkrona begäranden gör begärandeslutordningen osäker.

Använd egenskapen CanWrite för att avgöra om det aktuella DeflateStream objektet stöder skrivning.

Om en dataström stängs eller om du skickar ett ogiltigt argument genereras undantag omedelbart från BeginWrite. Fel som uppstår under en asynkron skrivbegäran, till exempel ett diskfel under I/O-begäran, inträffar i trådpoolstråden och utlöser undantag när du anropar EndWrite.

Gäller för