Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 最小化文件的锁定时间_.net_File_Locking - Fatal编程技术网

.net 最小化文件的锁定时间

.net 最小化文件的锁定时间,.net,file,locking,.net,File,Locking,我正在开发一个应用程序,它读取一个文件并在处理后将其保存回来。在处理文件时,我必须将文件保存在流中。现在的问题是,我必须最小化文件的锁定时间 解决办法是什么 我建议您将文件保存在MemoryStream中。写入内存流时,数据存储在内存中,而不是存储在文件系统中。处理完成后,您可以调用MemoryStream.WriteTo将数据永久存储在文件系统中。这将最大限度地减少锁定时间。我建议您将文件保存在内存流中。写入内存流时,数据存储在内存中,而不是存储在文件系统中。处理完成后,您可以调用Memory

我正在开发一个应用程序,它读取一个文件并在处理后将其保存回来。在处理文件时,我必须将文件保存在流中。现在的问题是,我必须最小化文件的锁定时间

解决办法是什么

我建议您将文件保存在
MemoryStream
中。写入
内存流时,数据存储在内存中,而不是存储在文件系统中。处理完成后,您可以调用
MemoryStream.WriteTo
将数据永久存储在文件系统中。这将最大限度地减少锁定时间。

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

您可以使用允许其他进程访问文件的共享模式打开文件句柄。换句话说,您可以在不创建独占锁的情况下读取文件:

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

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

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

解决方案:最大限度地减少文件被锁定的时间(在这种模式下为“打开”)。解决方案:最大限度地减少文件被锁定的时间(在这种模式下为“打开”)…假设有可测量的时间它自己生成输出…假设有可测量的时间它自己生成输出。