Nyelv

NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metódus

Definíció

Aszinkron írást kezd egy streambe.

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

Paraméterek

buffer
Byte[]

Olyan típusú Byte tömb, amely tartalmazza a beírandó NetworkStreamadatokat.

offset
Int32

Az adatok küldésének megkezdéséhez megadott hely buffer .

countsize
Int32

A beírandó NetworkStreambájtok száma.

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 hossza buffer.

-vagy-

A size paraméter kisebb, mint 0.

-vagy-

A size paraméter 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ózatba való írás közben.

-vagy-

Hiba történt a szoftvercsatorna elérésekor.

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 AsyncCallbackBeginWrite 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 BeginWritesorá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 BeginWrite .

A BeginWrite műveletet a metódus meghívásával EndWrite kell végrehajtani. A metódust általában a megadott AsyncCallback meghatalmazott hívja meg. EndWrite a művelet befejezéséig blokkolja a hívó szálat.

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.

A következőre érvényes:

Lásd még