BufferedStream.Flush メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このストリームのすべてのバッファーをクリアし、バッファー内のデータを基になるデバイスに書き込みます。
public:
override void Flush();
public override void Flush();
override this.Flush : unit -> unit
Public Overrides Sub Flush ()
例外
ストリームが破棄されました。
データ ソースまたはリポジトリが開いていません。
例
このコード例は、 BufferedStream クラスに提供されるより大きな例の一部です。
// 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"))
注釈
明示的に Flush または Closeを呼び出さない限り、ストリームをフラッシュしても、基になるエンコーダーはフラッシュされません。
BufferedStream コンストラクターを使用し、BufferedStream オブジェクトの作成時にバッファー サイズを指定すると、バッファー サイズに達するとコンテンツがフラッシュされます。 たとえば、バッファー サイズが 5 バイトに達すると、 BufferedStream bs = new BufferedStream(bs, 5) などのコードによってコンテンツがフラッシュされます。
BufferedStreamのすべての読み取りおよび書き込みメソッドはバッファーを自動的に維持するため、読み取りと書き込みの間で切り替えるときにFlushを呼び出す必要はありません。