c# - FileStream.Dispose 是否立即关闭文件?

标签 c# .net io

我有一些代码通过使用 MemoryStream.WriteTo() 将 MemoryStream 保存到 FileStream 来写入文件。文件关闭后,它会再次打开以读取一些元数据...

这在大约 80 - 90% 的时间内有效。另外 20% 我得到一个异常,说文件“正在被另一个进程使用”。

FileStream.Dispose()不是同步释放资源吗?在我不知道的 Win32 领域是否发生了一些较低的事情?我在 .Net 文档中没有看到任何明显的内容。

最佳答案

尽可能“立即”。由于 outstanding writes、更新目录信息的延迟等原因,很容易出现一些延迟。它也可能是防病毒软件正在检查您更改的文件。

调用 Thread.Sleep(1) 的情况可能很少见。但是为了完全安全,您必须捕获(任何)异常并重试一定次数。

关于c# - FileStream.Dispose 是否立即关闭文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6350224/

相关文章:

c# - 无法读取cookie

c# - 匹配 img 标签 url 的正则表达式

c# - 如何将从条形码读取的文本转换为阿拉伯文本

c# - StringComparison,为什么 "TH"不是以 "T"开头

Haskell interact() 截断我的输出?

c# - 如何在 ScaleTransform 动画后重置控件

.net - 我可以将一个导航器编译的 XPathExpression 与另一导航器一起使用吗?

asp.net - 非 ASCII 字符需要 web.config 吗?

python - 类文件对象的 `write` 方法返回什么?

Java反问题