BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Methode

Definitie

Begint een asynchrone leesbewerking. (Overweeg in plaats daarvan om te gebruiken ReadAsync(Byte[], Int32, Int32, CancellationToken) .)

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

Parameters

buffer
Byte[]

De buffer om de gegevens in te lezen.

offset
Int32

De byte-offset buffer waarin gegevens worden geschreven die uit de stream worden gelezen.

count
Int32

Het maximum aantal bytes dat moet worden gelezen.

callback
AsyncCallback

Een optionele asynchrone callback die moet worden aangeroepen wanneer de leesbewerking is voltooid.

state
Object

Een door de gebruiker verstrekt object dat deze specifieke asynchrone leesaanvraag onderscheidt van andere aanvragen.

Retouren

Een object dat de asynchrone leesbewerking vertegenwoordigt, die nog in behandeling kan zijn.

Uitzonderingen

buffer is null.

offset of count is negatief.

Er is geprobeerd een asynchrone leesbewerking te maken die voorbij het einde van de stream is gelezen.

De bufferlengte min offset is kleiner dan count.

De huidige stroom biedt geen ondersteuning voor de leesbewerking.

Opmerkingen

In de .NET Framework 4- en eerdere versies moet u methoden zoals BeginRead en EndRead gebruiken om asynchrone bestandsbewerkingen te implementeren. Deze methoden zijn nog steeds beschikbaar in het .NET Framework 4.5 ter ondersteuning van verouderde code. De nieuwe asynchrone methoden, zoals ReadAsync, WriteAsync en FlushAsync, helpen u bij het eenvoudiger implementeren van asynchrone bestandsbewerkingen.

EndWrite moet precies één keer worden aangeroepen voor elke aanroep naar BeginRead. Als u een leesproces niet beëindigt voordat een andere leesbewerking wordt gestart, kan dit ongewenst gedrag veroorzaken, zoals een impasse.

Note

Gebruik de CanRead eigenschap om te bepalen of het huidige exemplaar leesopties ondersteunt.

EndRead moet worden aangeroepen om IAsyncResult erachter te komen hoeveel bytes er zijn gelezen.

Van toepassing op