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

Definition

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

Parametrar

bufferarray
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 DeflateStream implementeringen stöder inte läsåtgärden.

Det går inte att slutföra det här anropet.

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 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äs- eller skrivåtgärden 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 DeflateStream 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.

Gäller för