Читать файл без эксклюзивной блокировки - PullRequest
2 голосов
/ 21 ноября 2011

Как лучше всего читать изображение, когда одновременные запросы пытаются получить доступ к одному и тому же файлу изображения?

По сути, я создал TIFF Viewer в asp.net.Он отображает эскизы всех страниц TIFF и при нажатии загружает полное изображение ниже.Но когда я пытаюсь прочитать большой TIFF-файл (более 40 МБ), появляются некоторые миниатюры, а некоторые отказывают в доступе.Надеюсь, я достаточно ясен, чтобы объяснить проблему.

1 Ответ

2 голосов
/ 21 ноября 2011

вы должны открыть поток следующим образом:

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

таким образом вы открываете для чтения, и все же другие процессы смогут читать файл также, и только один процесс, не ваш, может в конечном итоге получить права на запись.

см. Также здесь: Как открыть уже открытый файл с помощью .net StreamReader?

...