我正在处理一个读取文件的应用程序,并在处理后将其保存回来。我必须在文件处理过程中将文件保存在流中。现在问题是我必须最小化文件的LOCK时间。
解决办法是什么?
答案 0 :(得分:1)
我建议您将文件保存在MemoryStream
中。当您写入MemoryStream
时,数据将存储在内存中,而不是存储到文件系统中。处理完毕后,您可以调用MemoryStream.WriteTo
将数据永久存储在文件系统中。这将最小化锁定时间。
答案 1 :(得分:0)
您可以使用允许其他进程访问该文件的ShareMode打开文件句柄。换句话说,您可以在不创建独占锁的情况下读取文件:
FileStream stream = File.Open("path", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);