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()在循环之后放了一个,看来这就是干扰点(文件关闭)。

(请注意,我Flush()在每个之后Write()

为什么会这样以及如何克服它?

4

1 回答 1

4

我的评论是正确的。

在此处查看 Hans Passant 的答案:https ://stackoverflow.com/a/4921728/1517578

Flush(true)将立即刷新到磁盘。Flush()将不会。

于 2013-06-25T10:46:42.547 回答