Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Aszinkron írási műveletet kezd. (Fontolja meg a használatot WriteAsync(Byte[], Int32, Int32) .)
public:
virtual IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public virtual IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public virtual IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
public virtual IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object? state);
abstract member BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overridable Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Paraméterek
- buffer
- Byte[]
A puffer, amelyből adatokat írhat.
- offset
- Int32
A bájt eltolása buffer , amelyből az írás elkezdhető.
- count
- Int32
Az írható bájtok maximális száma.
- callback
- AsyncCallback
Opcionális aszinkron visszahívás, amelyet az írás befejezésekor kell meghívni.
- state
- Object
Felhasználó által megadott objektum, amely megkülönbözteti ezt az aszinkron írási kérést más kérésektől.
Válaszok
Az IAsyncResult aszinkron írást jelképező írás, amely továbbra is függőben lehet.
Kivételek
Megkísérelt aszinkron írást végezni a stream végén, vagy lemezhiba történik.
Egy vagy több argumentum érvénytelen.
A metódusok a stream bezárása után lettek meghívva.
A jelenlegi Stream implementáció nem támogatja az írási műveletet.
Megjegyzések
A .NET Framework 4- és korábbi verzióiban olyan módszereket kell használnia, mint a BeginWrite és EndWrite az aszinkron I/O-műveletek implementálásához. Ezek a metódusok továbbra is elérhetők a .NET Framework 4.5-ben az örökölt kód támogatásához, azonban az új aszinkron metódusok, például a ReadAsync, WriteAsync, CopyToAsync és FlushAsync megkönnyítik az aszinkron I/O-műveletek implementálását.
A streamek alapértelmezett implementációja BeginWrite szinkron módon hívja meg a Write metódust, ami azt jelenti, hogy Write bizonyos streameken blokkolhat. Az olyan osztályok példányai azonban, mint például FileStream az NetworkStream aszinkron műveletek teljes körű támogatása, ha a példányok aszinkron módon lettek megnyitva. Ezért a BeginWrite meghívások nem blokkolják ezeket a streameket. Felülbírálhatja BeginWrite (például aszinkron meghatalmazottak használatával), hogy aszinkron viselkedést biztosítson.
Adja át az IAsyncResult aktuális metódus által visszaadott adatokat EndWrite , hogy az írás megfelelően befejeződjön és felszabadítsa az erőforrásokat.
EndWriteminden híváshoz egyszer kell meghívni.BeginWrite Ezt megteheti ugyanazzal a kóddal, amely a hívott BeginWrite vagy a visszahívást továbbította BeginWrite. Ha hiba történik az aszinkron írás során, a rendszer csak akkor küld kivételt, ha EndWrite a metódus által visszaadott metódussal meghívja.IAsyncResult
Ha egy stream írható, a stream végén lévő írás kiterjeszti a streamet.
A stream aktuális pozíciója frissül, ha az aszinkron olvasást vagy írást ad ki, nem pedig az I/O-művelet befejeződésekor. Több egyidejű aszinkron kérés bizonytalanná teszi a kérés teljesítésének sorrendjét.
CanWrite A tulajdonság használatával állapítsa meg, hogy az aktuális példány támogatja-e az írást.
Ha egy stream le van zárva, vagy érvénytelen argumentumot ad át, a kivételek azonnal ki lesznek dobva a rendszerből BeginWrite. Az aszinkron írási kérelem során fellépő hibák ( például lemezhiba az I/O-kérés során) a szálkészlet szálán fordulnak elő, és kivételeket jeleznek híváskor EndWrite.