Sdílet prostřednictvím


NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metoda

Definice

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ě.

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.

Platí pro

Viz také