BufferedStream.Flush Méthode

Définition

Efface toutes les mémoires tampons pour ce flux et provoque l’écriture des données mises en mémoire tampon sur l’appareil sous-jacent.

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

Exceptions

Le flux a été supprimé.

La source de données ou le référentiel n’est pas ouvert.

Exemples

Cet exemple de code fait partie d’un exemple plus grand fourni pour la BufferedStream classe.

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

Remarques

Le vidage du flux ne vide pas son encodeur sous-jacent, sauf si vous appelez Flush explicitement ou Close.

Si vous utilisez le BufferedStream constructeur, en spécifiant ainsi la taille de la mémoire tampon lors de la création de l’objet BufferedStream , le contenu est vidé lorsqu’il atteint la taille de la mémoire tampon. Par exemple, le code tel que BufferedStream bs = new BufferedStream(bs, 5) vide le contenu lorsque la taille de la mémoire tampon atteint 5 octets.

Toutes les méthodes de lecture et d’écriture de gestion automatique de BufferedStream la mémoire tampon, il n’est donc pas nécessaire d’appeler Flush lors du basculement entre la lecture et l’écriture.

S’applique à

Voir aussi