4

FileStream(0.1 - 100 GBytes)を使用して非常に大きなファイルを作成しています:

using (var strm = File.OpenWrite(Destination)) {
    while(someCondition) {
        bfr = GetBuffer();

        strm.Write(bfr.Data, 0, ChunkSizeInBytes);
        strm.Flush();

        ShowProgress();
    }
}

ステートメントの最後に到達するとusing、スレッドが長時間ハングします。strm.Close()ループの後に a を配置しましたが、これがジャミング ポイント (ファイル クロージャー) のようです。

Flush()(私は各後に注意してくださいWrite())

それはなぜですか、それを克服する方法は?

4

1 に答える 1

4

私のコメントは正しかった。

ここでHans Passantの回答を参照してください:https://stackoverflow.com/a/4921728/1517578

Flush(true)すぐにディスクにフラッシュします。Flush()しない。

于 2013-06-25T10:46:42.547 に答える