FileStream.EndWrite(IAsyncResult) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Ukončí asynchronní operaci zápisu a zablokuje se, dokud se operace V/V nedokončí. (Zvažte místo toho WriteAsync(Byte[], Int32, Int32, CancellationToken) použití .)
public:
override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite (IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)
Parametry
- asyncResult
- IAsyncResult
Čekající asynchronní V/V požadavek.
Výjimky
asyncResult
je null
.
Tento IAsyncResult objekt nebyl vytvořen voláním BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) této třídy.
EndWrite(IAsyncResult) se volá vícekrát.
Datový proud je uzavřený nebo došlo k vnitřní chybě.
Příklady
Tento příklad kódu je součástí většího příkladu poskytnutého pro FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) konstruktor.
static void EndWriteCallback( IAsyncResult^ asyncResult )
{
State^ tempState = dynamic_cast<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, gcnew AsyncCallback( &FStream::EndReadCallback ), tempState );
// Concurrently do other work, such as
// logging the write operation.
}
};
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.
}
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
Poznámky
V .NET Framework 4 a starších verzích musíte k implementaci asynchronních operací se soubory použít metody jako BeginWrite EndWrite a . Tyto metody jsou stále dostupné v .NET Framework 4.5 pro podporu starší verze kódu. Nové asynchronní metody, jako jsou , , a , ale pomáhají snadněji implementovat asynchronní operace ReadAsync WriteAsync se CopyToAsync FlushAsync soubory.
Tato metoda přepíše EndWrite .
EndWrite musí být volána přesně jednou na každém IAsyncResult z BeginWrite . EndWrite se zablokuje, dokud se operace V/V nedokončí.