FileStream.EndWrite(IAsyncResult) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avslutar en asynkron skrivåtgärd och blockerar tills I/O-åtgärden har slutförts. (Överväg att använda WriteAsync(Byte[], Int32, Int32, CancellationToken) i stället.)
public:
override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite(IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)
Parametrar
- asyncResult
- IAsyncResult
Den väntande asynkrona I/O-begäran.
Undantag
asyncResult är null.
Det här IAsyncResult objektet skapades inte genom att anropa BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) den här klassen.
EndWrite(IAsyncResult) anropas flera gånger.
Strömmen stängs eller så har ett internt fel inträffat.
Exempel
Det här kodexemplet är en del av ett större exempel som tillhandahålls FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) för konstruktorn.
static void EndWriteCallback(IAsyncResult asyncResult)
{
State tempState = (State)asyncResult.AsyncState;
FileStream fStream = tempState.FStream;
fStream.EndWrite(asyncResult);
// Asynchronously read back the written data.
fStream.Position = 0;
asyncResult = fStream.BeginRead(
tempState.ReadArray, 0 , tempState.ReadArray.Length,
new AsyncCallback(EndReadCallback), tempState);
// Concurrently do other work, such as
// logging the write operation.
}
let endWriteCallback (asyncResult: IAsyncResult) =
let tempState = asyncResult.AsyncState :?> State
let fStream = tempState.FStream
fStream.EndWrite asyncResult
// Asynchronously read back the written data.
fStream.Position <- 0
let asyncResult =
fStream.BeginRead(tempState.ReadArray, 0, tempState.ReadArray.Length, AsyncCallback endReadCallback, tempState)
// Concurrently do other work, such as
// logging the write operation.
()
Private Shared Sub EndWriteCallback(asyncResult As IAsyncResult)
Dim tempState As State = _
DirectCast(asyncResult.AsyncState, State)
Dim fStream As FileStream = tempState.FStream
fStream.EndWrite(asyncResult)
' Asynchronously read back the written data.
fStream.Position = 0
asyncResult = fStream.BeginRead( _
tempState.ReadArray, 0 , tempState.ReadArray.Length, _
AddressOf EndReadCallback, tempState)
' Concurrently do other work, such as
' logging the write operation.
End Sub
Kommentarer
I .NET Framework 4 och tidigare versioner måste du använda metoder som BeginWrite och EndWrite för att implementera asynkrona filåtgärder. Dessa metoder är fortfarande tillgängliga i .NET Framework 4.5 för att stödja äldre kod. De nya asynkrona metoderna, till exempel ReadAsync, WriteAsync, CopyToAsync och FlushAsync, hjälper dig att implementera asynkrona filåtgärder enklare.
Den här metoden åsidosätter EndWrite.
EndWrite måste anropas exakt en gång på varje IAsyncResult från BeginWrite. EndWrite blockeras tills I/O-åtgärden har slutförts.