FileStream.EndWrite(IAsyncResult) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beendet einen asynchronen Schreibvorgang und blockiert, bis der E/A-Vorgang abgeschlossen ist. (Erwägen Sie stattdessen die Verwendung WriteAsync(Byte[], Int32, Int32, CancellationToken) .)
public:
override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite(IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)
Parameter
- asyncResult
- IAsyncResult
Die ausstehende asynchrone E/A-Anforderung.
Ausnahmen
asyncResult ist null.
Dieses IAsyncResult Objekt wurde nicht durch Aufrufen BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) dieser Klasse erstellt.
EndWrite(IAsyncResult) wird mehrmals aufgerufen.
Der Datenstrom ist geschlossen, oder es ist ein interner Fehler aufgetreten.
Beispiele
Dieses Codebeispiel ist Teil eines größeren Beispiels, das für den FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) Konstruktor bereitgestellt wird.
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
Hinweise
In .NET Framework 4 und früheren Versionen müssen Sie Methoden wie BeginWrite und EndWrite zum Implementieren asynchroner Dateivorgänge verwenden. Diese Methoden sind weiterhin im .NET Framework 4.5 verfügbar, um Legacycode zu unterstützen. Die neuen asynchronen Methoden wie ReadAsync, WriteAsync, CopyToAsync und FlushAsync helfen Ihnen, asynchrone Dateivorgänge einfacher zu implementieren.
Diese Methode überschreibt EndWrite.
EndWritemuss genau einmal pro Jahr IAsyncResult aufgerufen werden.BeginWrite EndWrite wird blockiert, bis der E/A-Vorgang abgeschlossen ist.