Aracılığıyla paylaş


BufferedStream.Flush Yöntem

Tanım

Bu akış için tüm arabellekleri temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

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

Özel durumlar

Akış atıldı.

Veri kaynağı veya depo açık değil.

Örnekler

Bu kod örneği, sınıfı için BufferedStream sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Akışın boşaltılması, veya Closeöğesini açıkça çağırmadığınız Flush sürece temel alınan kodlayıcısını temizlemez.

Oluşturucuyu BufferedStream kullanırsanız, böylece nesneyi oluştururken BufferedStream arabellek boyutunu belirtirseniz, içerik arabellek boyutuna ulaştığında temizlenir. Örneğin, gibi BufferedStream bs = new BufferedStream(bs, 5) bir kod, arabellek boyutu 5 bayta ulaştığında içeriği temizler.

Tüm okuma ve yazma yöntemleri BufferedStream otomatik olarak arabelleği korur, bu nedenle okuma ve yazma arasında geçiş yaparken çağırmaya Flush gerek yoktur.

Şunlara uygulanır

Ayrıca bkz.