BufferedStream.Flush 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í.
Vymaže všechny vyrovnávací paměti pro tento datový proud a způsobí zápis všech uložených dat do vyrovnávací paměti do podkladového zařízení.
public:
override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()
Výjimky
Stream byl odstraněn.
Zdroj dat nebo úložiště není otevřený.
Příklady
Tento příklad kódu je součástí většího příkladu zadaného BufferedStream pro třídu.
// Send the data using the BufferedStream.
Console::WriteLine( "Sending data using BufferedStream." );
startTime = DateTime::Now;
for ( int i = 0; i < numberOfLoops; i++ )
{
bufStream->Write( dataToSend, 0, dataToSend->Length );
}
bufStream->Flush();
bufferedTime = (DateTime::Now - startTime).TotalSeconds;
Console::WriteLine( "{0} bytes sent in {1} seconds.\n", (numberOfLoops * dataToSend->Length).ToString(), bufferedTime.ToString( "F1" ) );
// Send the data using the BufferedStream.
Console.WriteLine("Sending data using BufferedStream.");
startTime = DateTime.Now;
for(int i = 0; i < numberOfLoops; i++)
{
bufStream.Write(dataToSend, 0, dataToSend.Length);
}
bufStream.Flush();
bufferedTime = (DateTime.Now - startTime).TotalSeconds;
Console.WriteLine("{0} bytes sent in {1} seconds.\n",
numberOfLoops * dataToSend.Length,
bufferedTime.ToString("F1"));
// Send the data using the BufferedStream.
printfn "Sending data using BufferedStream."
let startTime = DateTime.Now
for _ = 0 to numberOfLoops - 1 do
bufStream.Write(dataToSend, 0, dataToSend.Length)
bufStream.Flush()
let bufferedTime = (DateTime.Now - startTime).TotalSeconds
printfn $"{numberOfLoops * dataToSend.Length} bytes sent in {bufferedTime:F1} seconds.\n"
' Send the data using the BufferedStream.
Console.WriteLine("Sending data using BufferedStream.")
startTime = DateTime.Now
For i As Integer = 1 To numberOfLoops
bufStream.Write(dataToSend, 0, dataToSend.Length)
Next i
bufStream.Flush()
bufferedTime = DateTime.Now.Subtract(startTime).TotalSeconds
Console.WriteLine("{0} bytes sent In {1} seconds." & vbCrLf, _
numberOfLoops * dataToSend.Length, _
bufferedTime.ToString("F1"))
Poznámky
Vyprázdnění datového proudu nebude vyprázdnět jeho podkladový kodér, pokud explicitně nezavoláte Flush
nebo Close.
Pokud použijete BufferedStream konstruktor, čímž určíte velikost vyrovnávací paměti při vytváření objektu BufferedStream
, obsah se vyprázdní, když dosáhne velikosti vyrovnávací paměti. Například kód, například BufferedStream bs = new BufferedStream(bs, 5)
vyprázdní obsah, když velikost vyrovnávací paměti dosáhne 5 bajtů.
Všechny metody čtení a zápisu BufferedStream
automaticky udržují vyrovnávací paměť, takže při přepínání mezi čtením a zápisem není potřeba vyvolat Flush
.