NetworkStream.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ást kezd a NetworkStream.
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, 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 size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
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
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Paraméterek
- buffer
- Byte[]
A memória olyan típusú Byte tömbje, amely a memóriában tárolja a beolvasott NetworkStreamadatokat.
- offset
- Int32
Az adatok tárolásának megkezdéséhez megadott hely buffer .
- countsize
- Int32
A beolvasandó bájtok száma a NetworkStream.
- callback
- AsyncCallback
A AsyncCallback befejezett BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) meghatalmazott.
- state
- Object
Olyan objektum, amely további felhasználó által definiált adatokat tartalmaz.
Válaszok
Az IAsyncResult aszinkron hívást jelképező hívás.
Kivételek
A buffer paraméter a következő null: .
A offset paraméter kisebb, mint 0.
-vagy-
A offset paraméter nagyobb, mint a buffer paraméter hossza.
-vagy-
Ez size kisebb, mint 0.
-vagy-
Ez size nagyobb, mint a paraméter értékének bufferoffset mínusz hossza.
Az alapul szolgáló Socket zárt.
-vagy-
Hiba történt a hálózatról való olvasás közben.
-vagy-
Hiba történt a szoftvercsatorna elérésekor.
A NetworkStream lezárva.
Megjegyzések
Important
Ez egy kompatibilitási API. Nem javasoljuk az APM (Begin/End) metódusok használatát az új fejlesztéshez. Ehelyett használja a feladatalapú megfelelőket.
A művelet befejezéséről értesítést kapó visszahívást továbbíthat, amely implementálva AsyncCallbackBeginRead van. Vegye figyelembe, hogy ha a mögöttes hálózati verem szinkron módon hajtja végre a műveletet, a visszahívást a rendszer beágyazottan hajtja végre a hívás BeginReadsorán. Ebben az esetben a CompletedSynchronously visszaadott IAsyncResulttrue tulajdonság azt jelzi, hogy a metódus szinkron módon fejeződött be. Használja a AsyncState tulajdonságot a IAsyncResult metódusnak átadott állapotobjektum lekéréséhez BeginRead .
A BeginRead műveletet a metódus meghívásával EndRead kell végrehajtani. A metódust általában a megadott AsyncCallback meghatalmazott hívja meg. EndRead a művelet befejezéséig blokkolja a hívó szálat.
A művelet annyi adatot olvas be, amennyit csak lehet, a paraméter által count megadott bájtszámig.
Note
Ha kap egy tulajdonságot IOException, ellenőrizze a InnerException tulajdonságot annak megállapításához, hogy a tulajdonságot egy SocketException. Ha igen, a ErrorCode tulajdonság használatával szerezze be az adott hibakódot.
Az olvasási és írási NetworkStream műveletek az osztály egy példányán is elvégezhetők szinkronizálás nélkül. Mindaddig, amíg az írási műveletekhez egy egyedi szál és egy egyedi szál tartozik az olvasási műveletekhez, az olvasási és írási szálak között nincs kereszt-interferencia, és nincs szükség szinkronizálásra.