2011-05-27 81 views
1

我正在研究读取文件的应用程序,并在处理完成后将其保存回来。在文件处理过程中,我必须将文件保存在流中。现在的问题是我必须尽量减少文件的LOCK时间。
解决方案是什么?最小化文件的锁定时间

+2

发布您的代码。 – Oded 2011-05-27 07:15:21

+1

解决方案:最小化文件被锁定的时间(在这种模式下“打开”)。 – 2011-05-27 07:16:20

回答

1

我会建议你保留你的文件在MemoryStream。当您写入MemoryStream时,数据将存储在内存中,而不是存储到文件系统中。处理完成后,您可以拨打MemoryStream.WriteTo将数据永久存储在文件系统中。这将最小化锁定时间。

+0

...假设有可测量的时间它自己产生输出。 – 2011-05-27 07:18:09

0

您可以使用ShareMode打开文件句柄,该文件句柄允许其他进程访问该文件。换句话说,您可以在不创建排它锁的情况下读取文件:

FileStream stream = File.Open("path", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);