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 count, AsyncCallback ^ callback, System::Object ^ state);
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::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);
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, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- buffer
- Byte[]
Pole typu Byte obsahující data, která se mají zapisovat do objektu NetworkStream.
- offset
- Int32
Umístění buffer pro zahájení odesílání dat.
- countsize
- Int32
Počet bajtů, které se mají zapisovat do NetworkStream.
- callback
- AsyncCallback
Delegát AsyncCallback , který se spustí po BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) dokončení.
- state
- Object
Objekt, který obsahuje všechna další uživatelsky definovaná data.
Návraty
Jedná se o 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 buffer.
nebo
Parametr size je menší než 0.
nebo
Parametr size je větší než délka buffer mínus hodnoty parametru offset .
Podklad Socket je uzavřen.
nebo
Při zápisu do sítě došlo k chybě.
nebo
Při přístupu k soketu došlo k chybě.
To NetworkStream je uzavřeno.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin/End). Místo toho použijte ekvivalenty založené na úlohách.
Můžete předat zpětné volání, které implementuje AsyncCallback , BeginWrite aby bylo možné dostávat oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, bude zpětné volání spuštěno přímo během volání BeginWrite. V tomto případě bude vlastnost vrácena CompletedSynchronously nastavena tak, aby IAsyncResult indikovat, true že metoda byla dokončena synchronně.
AsyncState Použijte vlastnost IAsyncResult k získání objektu stavu předaného metoděBeginWrite.
Operace BeginWrite musí být dokončena voláním EndWrite metody. Metoda je obvykle vyvolána zadaným AsyncCallback delegátem. EndWrite zablokuje volající vlákno, dokud se operace nedokončila.
Poznámka:
Pokud obdržíte , IOExceptionzkontrolujte InnerException vlastnost a zjistěte, zda byla způsobena 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 žádná křížová interference a nevyžaduje se žádná synchronizace.