CryptoStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.