FileStream.EndWrite(IAsyncResult) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee beëindigt u een asynchrone schrijfbewerking en blokkeert u deze totdat de I/O-bewerking is voltooid. (Overweeg in plaats daarvan om te gebruiken 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)
Parameters
- asyncResult
- IAsyncResult
De in behandeling zijnde asynchrone I/O-aanvraag.
Uitzonderingen
asyncResult is null.
Dit IAsyncResult object is niet gemaakt door deze klasse aan te roepen BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) .
EndWrite(IAsyncResult) wordt meerdere keren aangeroepen.
De stream is gesloten of er is een interne fout opgetreden.
Voorbeelden
Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) constructor.
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
Opmerkingen
In de .NET Framework 4- en eerdere versies moet u methoden zoals BeginWrite en EndWrite gebruiken om asynchrone bestandsbewerkingen te implementeren. Deze methoden zijn nog steeds beschikbaar in het .NET Framework 4.5 ter ondersteuning van verouderde code. De nieuwe asynchrone methoden, zoals ReadAsync, WriteAsync, CopyToAsync en FlushAsync, helpen u bij het eenvoudiger implementeren van asynchrone bestandsbewerkingen.
Deze methode overschrijft EndWrite.
EndWrite moet precies één keer worden aangeroepen op elk IAsyncResult van BeginWrite. EndWrite wordt geblokkeerd totdat de I/O-bewerking is voltooid.