DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.