CryptoStream.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 använda ReadAsync i stället.)
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametrar
- buffer
- Byte[]
Bufferten som data ska läsas in i.
- offset
- Int32
Byteförskjutningen buffer där du börjar skriva data som lästs från dataströmmen.
- count
- Int32
Det maximala antalet byte som ska läsas.
- callback
- AsyncCallback
Ett valfritt asynkront återanrop som ska anropas när läsningen är klar.
- state
- 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
En IAsyncResult som representerar den asynkrona läsningen, som fortfarande kan vara väntande.
Undantag
Ett asynkront försök gjordes att läsa 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 Stream implementeringen stöder inte läsåtgärden.
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.
I .NET Framework 4 och tidigare versioner måste du använda metoder som BeginRead och EndRead för att implementera asynkrona I/O-åtgärder. Dessa metoder är fortfarande tillgängliga i aktuella versioner för att stödja äldre kod. Men de nya asynkrona metoderna, till exempel ReadAsync, WriteAsync, CopyToAsyncoch FlushAsync, hjälper dig att implementera asynkrona I/O-åtgärder enklare.
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.
EndRead måste anropas en gång för varje anrop till BeginRead. 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 den aktuella instansen 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.