NetworkStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Začíná asynchronní čtení z objektu NetworkStream.
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
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 size, 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 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, size As Integer, callback As AsyncCallback, state As Object) As 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[]
Pole typu Byte , které je umístěním v paměti pro ukládání dat přečtených z objektu NetworkStream.
- offset
- Int32
Umístění v, ve buffer
které se mají data začít ukládat.
- sizecount
- Int32
Počet bajtů, které se mají přečíst z NetworkStream.
- callback
- AsyncCallback
Delegát AsyncCallback , který se spustí po BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) dokončení.
- state
- Object
Objekt, který obsahuje další data definovaná uživatelem.
Návraty
Představuje IAsyncResult asynchronní volání.
Výjimky
Parametr buffer
je null
.
Parametr offset
je menší než 0.
-nebo-
Parametr offset
je větší než délka parametru buffer
paramater.
-nebo-
Hodnota size
je menší než 0.
-nebo-
Hodnota size
je větší než délka buffer
parametru minus hodnota parametru offset
.
Podkladová položka Socket je uzavřená.
-nebo-
Při čtení ze sítě došlo k chybě.
-nebo-
Při přístupu k soketu došlo k chybě.
Je NetworkStream zavřený.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Nedoporučujeme používat metody APM (Begin/End) pro nový vývoj. Místo toho použijte ekvivalenty založené na úlohách.
Zpětné volání, které se implementuje AsyncCallback do BeginRead , můžete předat, abyste dostali oznámení o dokončení operace. Všimněte si, že pokud podkladová síťová sada dokončí operaci synchronně, provede se zpětné volání vložené během volání .BeginRead V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult nastavena na , true
aby bylo možné označit, že metoda byla dokončena synchronně.
AsyncState K získání objektu stavu předaného BeginRead metodě použijte vlastnost IAsyncResult .
Operace BeginRead musí být dokončena voláním EndRead metody . Metoda je obvykle vyvolána poskytnutým AsyncCallback delegátem. EndRead až do dokončení operace zablokuje volající vlákno.
Operace načte tolik dat, kolik je k dispozici, až do počtu bajtů určených parametrem size
.
Poznámka
Pokud obdržíte IOException, zkontrolujte vlastnost a InnerException zjistěte, jestli nebyla způsobená SocketException. Pokud ano, použijte ErrorCode vlastnost k získání konkrétního kódu chyby.
Operace čtení a zápisu lze na instanci NetworkStream třídy provádět současně bez nutnosti synchronizace. Pokud existuje jedno jedinečné vlákno pro operace zápisu a jedno jedinečné vlákno pro operace čtení, nebude mezi vlákny čtení a zápisu existovat žádné vzájemné rušení a není nutná žádná synchronizace.