|

未经处理的异常: System.AggregateException: 发生一个或多个错误。 ---> System.IO.IOException: 文件“C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat”正由另一进程使用,因此该进程无法访问此文件。
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
在 System.IO.File.Open(String path, FileMode mode, FileAccess access)
在 ConsoleApp1.FileReadHelper.SingleFile(String path) 位置 C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs:行号 27
在 ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0.<MultipleFilesAsync>b__0(String x) 位置 C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs:行号 68
在 System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
在 System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
在 System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )
--- 内部异常堆栈跟踪的结尾 ---
在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
在 System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
在 System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
在 System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
在 System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
在 ConsoleApp1.FileReadHelper.MultipleFilesAsync(IEnumerable`1 path) 位置 C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs:行号 66
在 ConsoleApp1.Program.Main(String[] args) 位置 C:\project\my\TestNet\ConsoleApp1\Program.cs:行号 73
请按任意键继续. . .
报错很明显,就是无法访问文件,无法读取文件,这是在多线程下面抛出的异常
我读文件的写法:
我只设置了读模式,并没有设置写的模式,发现,多线程下面,还是会报错,难道不是只读吗?
如果,是只读,就应该不会报错啊
解决办法:
这个应该就是以只读模式来读文件了吧,测试了一下,发现不在报错,可以在多线程下面同时读取同一个文件
|
上一篇:一键重装教程装机助理一键重装系统助手的重装指南下一篇:.net/c# 文件读取操作,批量读取文件所有行
|