Nyelv

CryptoStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metódus

Definíció

Aszinkron olvasási műveletet kezd. (Fontolja meg a használatot 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

Paraméterek

buffer
Byte[]

A puffer, amelybe beolvassa az adatokat.

offset
Int32

A bájteltolódás buffer , amelynél az adatok írása elkezdhető a streamből.

count
Int32

Az elolvasandó bájtok maximális száma.

callback
AsyncCallback

Opcionális aszinkron visszahívás, amelyet az olvasás befejezésekor kell meghívni.

state
Object

Felhasználó által megadott objektum, amely megkülönbözteti ezt az aszinkron olvasási kérést más kérésektől.

Válaszok

Ez IAsyncResult az aszinkron olvasást jelöli, amely továbbra is függőben lehet.

Kivételek

Aszinkron olvasást kísérelt meg a stream végén, vagy lemezhiba történt.

Egy vagy több argumentum érvénytelen.

A metódusok a stream bezárása után lettek meghívva.

A jelenlegi Stream implementáció nem támogatja az olvasási műveletet.

Megjegyzések

Important

A 6. .NET-tól kezdődően ez a metódus nem feltétlenül olvas be annyi bájtot, amennyit kértek. További információ: Részleges és nulla bájtos olvasások a DeflateStreamben, a GZipStreamben és a CryptoStreamben.

A .NET-keretrendszer 4- és korábbi verzióiban olyan módszereket kell használnia, mint például BeginReadEndRead az aszinkron I/O-műveletek implementálása. Ezek a módszerek továbbra is elérhetők a jelenlegi verziókban az örökölt kód támogatásához; Azonban az új aszinkron metódusok, például ReadAsynca , WriteAsync, CopyToAsyncés FlushAsync, könnyebben implementálják az aszinkron I/O-műveleteket.

Adja át a IAsyncResult visszatérési értéket a EndRead stream metódusának, hogy megállapítsa, hány bájtot olvasott be, és engedje fel az olvasáshoz használt operációsrendszer-erőforrásokat. EndReadminden híváshoz egyszer kell meghívni.BeginRead Ezt megteheti ugyanazzal a kóddal, amely a hívott BeginRead vagy a visszahívást továbbította BeginRead.

A stream aktuális pozíciója az aszinkron olvasás vagy írás kiadásakor frissül, nem pedig az I/O-művelet befejeződésekor.

Több egyidejű aszinkron kérés bizonytalanná teszi a kérés teljesítésének sorrendjét.

CanRead A tulajdonság használatával állapítsa meg, hogy az aktuális példány támogatja-e az olvasást.

Ha egy stream le van zárva, vagy érvénytelen argumentumot ad át, a kivételek azonnal ki lesznek dobva a rendszerből BeginRead. Az aszinkron olvasási kérés során fellépő hibák(például az I/O-kérés során fellépő lemezhiba) a szálkészlet szálán fordulnak elő, és kivételeket jeleznek híváskor EndRead.

A következőre érvényes: