问题描述
我在 C# Windows 服务中使用以下代码来创建或覆盖现有文件。
function DonwnloadFile(string destinationfolder,string filename)
{
using (var outputFileStream = System.IO.File.Create(
destinationfolder + "\\" + filename,BUFFER_SIZE))
{
//Downloads a large file from cloud and writes it to the outputFileStream
//...
//...
}
}
在下载文件(非常大)时,由于源文件已更新,因此向 DownloadFile
方法发出了另一个请求。
但是,抛出异常:
进程无法访问文件“[FileName with Path]”,因为它正被另一个进程使用。
如何实现解决方案,以便后续覆盖同一文件的请求等待,直到对同一文件的上一个文件写入操作完成。 此外,该解决方案应允许覆盖不同文件的请求不应等待,因为它不会引发任何异常。
我可以在确保锁定仅基于文件名起作用的同时使用锁定吗? 或者有人可以为这个问题提出更好的解决方案。
注意:DonwloadFile
方法每次都会被不同的线程调用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)