BufferedStream.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(Byte[], Int32, Int32, CancellationToken) 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
Ett objekt som representerar den asynkrona läsningen, som fortfarande kan vara väntande.
Undantag
buffer är null.
offset eller count är negativ.
Försökte läsa asynkront förbi strömmens slut.
Buffertlängden minus offset är mindre än count.
Den aktuella strömmen stöder inte läsåtgärden.
Kommentarer
I .NET Framework 4 och tidigare versioner måste du använda metoder som BeginRead och EndRead för att implementera asynkrona filåtgärder. Dessa metoder är fortfarande tillgängliga i .NET Framework 4.5 för att stödja äldre kod. De nya asynkrona metoderna, till exempel ReadAsync, WriteAsync och FlushAsync, hjälper dig att implementera asynkrona filåtgärder enklare.
EndWrite måste anropas exakt en gång för varje anrop till BeginRead. Om du inte avslutar en läsprocess innan du påbörjar en annan läsning kan det orsaka oönskade beteenden, till exempel dödläge.
Note
Använd egenskapen CanRead för att avgöra om den aktuella instansen stöder läsning.
EndRead måste anropas med detta IAsyncResult för att ta reda på hur många byte som lästes.