问题描述
|
我有一些通过使用MemoryStream.Writeto()将MemoryStream保存到FileStream来写入文件的代码。文件关闭后,将再次打开以读取一些metdata。
大约有80%-90%的时间有效。另外20%我得到一个例外,说该文件“正在被另一个进程使用”。
FileStream.dispose()是否不会同步释放资源?我不知道的Win32区域中发生了什么事情?我没有在.Net文档中看到任何明显的内容。
解决方法
尽可能“立即”。由于未完成的写入,更新目录信息的延迟等原因,很容易会有一些滞后。这也可能是防病毒软件检查更改的文件。
这可能是极少数要求where0ѭ的情况。但是,为了完全安全,您将必须捕获(任何)异常,然后重试一定次数。