Sdílet prostřednictvím


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

Definice

Zahájí asynchronní operaci čtení. (Místo toho zvažte použití ReadAsync .)

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);
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

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

Výjimky

Pokusili jste se o asynchronní čtení za konec datového proudu nebo došlo k chybě disku.

Jeden nebo více argumentů je neplatné.

Metody byly volány po zavření datového proudu.

Aktuální Stream implementace nepodporuje operaci čtení.

Poznámky

Důležité

Od verze .NET 6 nemusí tato metoda číst tolik bajtů, kolik bylo požadováno. Další informace naleznete v tématu Částečné a nulové bajty čtení v DeflateStream, GZipStream a CryptoStream.

V rozhraní .NET Framework 4 a starších verzích musíte použít metody, jako jsou BeginRead a EndRead, k implementaci asynchronních vstupně-výstupních operací. Tyto metody jsou stále k dispozici v aktuálních verzích pro podporu starší verze kódu; Nové asynchronní metody, například ReadAsync, WriteAsync, CopyToAsynca FlushAsync, vám však pomáhají snadněji implementovat asynchronní vstupně-výstupní operace.

Předejte návratovou IAsyncResult hodnotu EndRead metodě datového proudu, abyste zjistili, kolik bajtů bylo přečteno a uvolní prostředky operačního systému používané ke čtení. EndRead musí být volána jednou pro každé volání BeginRead. Můžete to provést buď pomocí stejného kódu, který volal BeginRead , nebo v zpětném volání předané BeginRead.

Aktuální pozice ve streamu se aktualizuje při vydání asynchronního čtení nebo zápisu, ne při dokončení vstupně-výstupní operace.

Více souběžných asynchronních požadavků vykreslí pořadí dokončení požadavku nejistě.

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

Pokud je datový proud uzavřen nebo předáte neplatný argument, výjimky jsou vyvolány okamžitě z BeginRead. Chyby, ke kterým dochází během asynchronního požadavku na čtení, například selhání disku během vstupně-výstupního požadavku, dochází ve vlákně fondu vláken a při volání EndReadvyvolá výjimku .

Platí pro