Bagikan melalui


BufferedStream.Flush Metode

Definisi

Menghapus semua buffer untuk aliran ini dan menyebabkan data buffer ditulis ke perangkat yang mendasar.

public:
 override void Flush();
public override void Flush ();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()

Pengecualian

Aliran telah dibuang.

Sumber data atau repositori tidak terbuka.

Contoh

Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk BufferedStream kelas .

// 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"))

Keterangan

Menghapus aliran tidak akan menghapus encoder yang mendasar kecuali Anda secara eksplisit memanggil Flush atau Close.

Jika Anda menggunakan BufferedStream konstruktor, sehingga menentukan ukuran buffer saat membuat BufferedStream objek, konten akan dihapus saat mencapai ukuran buffer. Misalnya, kode seperti BufferedStream bs = new BufferedStream(bs, 5) akan menghapus konten ketika ukuran buffer mencapai 5 byte.

Semua metode BufferedStream baca dan tulis secara otomatis mempertahankan buffer, jadi tidak perlu memanggil Flush saat beralih bolak-balik antara membaca dan menulis.

Berlaku untuk

Lihat juga