GZipStream.BeginRead(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 läsåtgärd. (Överväg att ReadAsync(Byte[], Int32, Int32) använda metoden i stället.)
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginRead(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Parametrar
- arraybuffer
- Byte[]
Bytematrisen som data ska läsas in i.
- offset
- Int32
Byteförskjutningen där du kan börja läsa data från dataströmmen.
- count
- Int32
Det maximala antalet byte som ska läsas.
- asyncCallback
- AsyncCallback
Ett valfritt asynkront återanrop som ska anropas när läsåtgärden är klar.
- asyncState
- Object
Ett objekt som tillhandahålls av användaren och som skiljer den här specifika asynkrona läsbegäran från andra begäranden.
Returer
Ett objekt som representerar den asynkrona läsåtgärden, som fortfarande kan vänta.
Undantag
Metoden försökte läsa 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 GZipStream implementeringen stöder inte läsåtgärden.
Det går inte att utföra en läsåtgärd eftersom strömmen är stängd.
Kommentarer
Important
Från och med .NET 6 kanske den här metoden inte läser så många byte som begärdes. Mer information finns i Del- och nollbyteläsningar i DeflateStream, GZipStream och CryptoStream.
Från och med .NET Framework 4.5 kan du utföra asynkrona läsåtgärder med hjälp av metoden Stream.ReadAsync. Metoden BeginRead ä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.
IAsyncResult Skicka returvärdet till EndRead dataströmmens metod för att avgöra hur många byte som lästes och för att frigöra operativsystemresurser som används för läsning. Du kan göra detta antingen med hjälp av samma kod som anropade BeginRead eller i ett återanrop som skickades till BeginRead.
Den aktuella positionen i strömmen uppdateras när den asynkrona läsningen eller skrivning utfärdas, inte när I/O-åtgärden slutförs.
Flera samtidiga asynkrona begäranden gör begärandeslutordningen osäker.
Använd egenskapen CanRead för att avgöra om det aktuella GZipStream objektet stöder läsning.
Om en dataström stängs eller om du skickar ett ogiltigt argument genereras undantag omedelbart från BeginRead. Fel som uppstår under en asynkron läsbegäran, till exempel ett diskfel under I/O-begäran, inträffar i trådpoolstråden och utlöser undantag när du anropar EndRead.