Sdílet prostřednictvím


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

Definice

Zahájí asynchronní operaci čtení. (Místo toho zvažte použití 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);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, 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

Parametry

buffer
Byte[]

Vyrovnávací paměť pro čtení dat do.

offset
Int32

Posun bajtů, při buffer kterém se mají začít zapisovat data načtená z datového proudu.

count
Int32

Maximální počet bajtů, které se mají přečíst.

callback
AsyncCallback

Volitelné asynchronní zpětné volání, které se má volat při dokončení čtení.

state
Object

Objekt poskytovaný uživatelem, který rozlišuje tento konkrétní asynchronní požadavek na čtení od jiných požadavků.

Návraty

Objekt, který představuje asynchronní čtení, které může být stále čeká na vyřízení.

Výjimky

buffer je null.

offset nebo count je negativní.

Pokusili jste se o asynchronní čtení za konec datového proudu.

Délka vyrovnávací paměti je menší offset než count.

Aktuální datový proud nepodporuje operaci čtení.

Poznámky

V rozhraní .NET Framework 4 a starších verzích musíte použít metody, jako BeginRead je a EndRead implementovat asynchronní operace se soubory. Tyto metody jsou stále k dispozici v rozhraní .NET Framework 4.5 pro podporu staršího kódu; Nové asynchronní metody, jako ReadAsyncje například , WriteAsynca FlushAsync, však pomáhají implementovat asynchronní operace se soubory snadněji.

EndWrite musí být volána přesně jednou pro každé volání BeginRead. Selhání ukončení procesu čtení před zahájením jiného čtení může způsobit nežádoucí chování, jako je zablokování.

Poznámka:

CanRead Pomocí vlastnosti určete, zda aktuální instance podporuje čtení.

EndRead musí být volána tímto IAsyncResult způsobem, aby bylo možné zjistit, kolik bajtů bylo přečteno.

Platí pro