访问文件系统时,C#4.0 AsParallel()UnAuthorizedAccessException

时间:2009-11-17 16:51:43

标签: c#-4.0 parallel-processing

我正在使用C#4.0 AsParallel()扩展方法并在访问文件系统时获取UnAuthorizedAccessException

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

3 个答案:

答案 0 :(得分:5)

原因是默认情况下File.Open会在禁用共享的情况下打开。通过使用AsParallel,您有多个线程尝试在禁用共享的同时打开文件。这按预期失败。

你需要

  • 不是并行执行此操作
  • 打开启用共享的文件

答案 1 :(得分:2)

尝试File.Open(@"c:\file.txt", FileMode.Open, FileAccess.Read, FileShare.Read)

答案 2 :(得分:0)

您有多个线程尝试访问该文件。使用高级别(即File.Open)不会执行的代码,您需要使用设置共享级别的内容。