NetworkStream.BeginWrite(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í.
Zahájí asynchronní zápis do datového proudu.
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- buffer
- Byte[]
Pole typu Byte , které obsahuje data pro zápis do NetworkStream.
- offset
- Int32
Umístění pro buffer
zahájení odesílání dat.
- sizecount
- Int32
Počet bajtů, které se mají zapsat do NetworkStream.
- callback
- AsyncCallback
Delegát AsyncCallback , který se spustí po BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) dokončení.
- state
- Object
Objekt, který obsahuje další uživatelem definovaná data.
Návraty
Jedná IAsyncResult se o 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
.
-nebo-
Parametr size
je menší než 0.
-nebo-
Parametr size
je větší než délka buffer
minus hodnota parametru offset
.
Podkladová položka Socket je uzavřena.
-nebo-
Při zápisu do 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 BeginWrite , můžete předat, abyste dostali oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, provede se zpětné volání přímo během volání nástroje BeginWrite. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult na hodnotu, která true
označuje, že metoda byla dokončena synchronně.
AsyncState K získání objektu IAsyncResult stavu předaného metodě použijte vlastnost objektuBeginWrite.
Operace BeginWrite musí být dokončena voláním EndWrite metody. Obvykle je metoda vyvolána poskytnutým AsyncCallback delegátem. EndWrite zablokuje volající vlákno, dokud se operace nedokonči.
Poznámka
Pokud se zobrazí , IOExceptionzkontrolujte vlastnost a InnerException zjistěte, jestli byla způsobená objektem SocketException. Pokud ano, použijte ErrorCode vlastnost k získání konkrétního kódu chyby.
Operace čtení a zápisu lze provádět současně s instancí NetworkStream třídy 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é křížové rušení a nebude vyžadována synchronizace.