CryptoStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Metod

Definition

Påbörjar en asynkron skrivåtgärd. (Överväg att använda WriteAsync i stället.)

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 count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
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

Parametrar

buffer
Byte[]

Bufferten att skriva data från.

offset
Int32

Byteförskjutningen buffer som du vill börja skriva från.

count
Int32

Det maximala antalet byte som ska skrivas.

callback
AsyncCallback

Ett valfritt asynkront återanrop som ska anropas när skrivning är klar.

state
Object

Ett objekt som tillhandahålls av användaren och som skiljer den här specifika asynkrona skrivbegäran från andra begäranden.

Returer

En IAsyncResult som representerar den asynkrona skrivning som fortfarande kan vänta.

Undantag

Ett asynkront skrivförsök gjordes efter strömmens slut, eller så uppstod ett diskfel.

Ett eller flera av argumenten är ogiltiga.

Metoder anropades efter att strömmen stängdes.

Den aktuella Stream implementeringen stöder inte skrivåtgärden.

Kommentarer

I .NET Framework 4 och tidigare versioner måste du använda metoder som BeginWrite och EndWrite för att implementera asynkrona I/O-åtgärder. Dessa metoder är fortfarande tillgängliga i aktuella versioner för att stödja äldre kod. Men de nya asynkrona metoderna, till exempel ReadAsync, WriteAsync, CopyToAsyncoch FlushAsync, hjälper dig att implementera asynkrona I/O-åtgärder enklare.

Skicka det IAsyncResult som returneras av den aktuella metoden för EndWrite att säkerställa att skrivningen slutförs och frigör resurser på rätt sätt. EndWrite måste anropas en gång för varje anrop till BeginWrite. Du kan göra detta antingen med hjälp av samma kod som anropade BeginWrite eller i ett återanrop som skickades till BeginWrite. Om ett fel inträffar under en asynkron skrivning utlöses inte ett undantag förrän EndWrite det anropas med den IAsyncResult returnerade metoden.

Om en ström är skrivbar expanderar skrivning i slutet av strömmen strömmen.

Den aktuella positionen i strömmen uppdateras när du utfärdar asynkron läsning eller skrivning, inte när I/O-åtgärden slutförs. Flera samtidiga asynkrona begäranden gör begärandeslutordningen osäker.

Använd egenskapen CanWrite för att avgöra om den aktuella instansen stöder skrivning.

Om en dataström stängs eller om du skickar ett ogiltigt argument genereras undantag omedelbart från BeginWrite. Fel som uppstår under en asynkron skrivbegäran, till exempel ett diskfel under I/O-begäran, inträffar i trådpoolstråden och utlöser undantag när du anropar EndWrite.

Gäller för