C # 4.0 AsParallel () UnAuthorizedAccessException при доступе к файловой системе - PullRequest
1 голос
/ 17 ноября 2009

Я использую метод расширения C # 4.0 AsParallel () и получаю исключение UnAuthorizedAccessException при доступе к файловой системе

foreach (var item in items.AsParallel())
{
    File.Open(@"c:\file.txt");
}

Ответы [ 3 ]

5 голосов
/ 17 ноября 2009

Причина в том, что по умолчанию File.Open открывается с отключенным общим доступом. При использовании AsParallel у вас есть несколько потоков, пытающихся открыть файл одновременно с отключенным общим доступом. Это не так, как ожидалось.

Вам понадобится либо

  • Не делайте этого параллельно
  • Открыть файл с включенным общим доступом
2 голосов
/ 17 ноября 2009

Попробуйте File.Open(@"c:\file.txt", FileMode.Open, FileAccess.Read, FileShare.Read)

0 голосов
/ 17 ноября 2009

У вас есть несколько потоков, пытающихся получить доступ к файлу. Используя код такого высокого уровня (то есть File.Open), вы не должны использовать то, что устанавливает уровень общего доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...