无需独占锁即可读取文件

时间:2011-11-21 13:28:34

标签: asp.net file-io locking tiff viewer

当同时请求尝试访问同一图像文件时,读取图像的最佳方法是什么?

基本上我在asp.net中创建了tiff查看器。它显示所有tiff页面的缩略图,点击后加载下面的完整图像。但是当我尝试读取大的tiff文件(40+ MB)时,会出现一些缩略图并且会出现一些拒绝访问错误的错误。我希望我能够清楚地解释这个问题。

1 个答案:

答案 0 :(得分:2)

你应该以这种方式打开Stream:

using (Stream s = new FileStream(fullFilePath, 
                                 FileMode.Open,
                                 FileAccess.Read,
                                 FileShare.ReadWrite))
{
  // here use the stream s
}

以这种方式打开读取,其他进程也可以读取文件,只有一个进程,而不是你的进程最终可以获得写权限。

另见:How do I open an already opened file with a .net StreamReader?