Необработено изключение: System.AggregateException: Възникнали са една или повече грешки. ---> System.IO.IOException: Файл "C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat" се използва от друг процес, така че този файл не може да бъде достъпен. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) В System.IO.FileStream.Init (String path, FileMode режим, FileAccess достъп, Int32 права, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions опции, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) В System.IO.FileStream: ctor (Път към низ, режим FileMode, достъп до FileAccess, споделяне на Файла) В System.IO.File.Open (Път към низ, режим FileMode, достъп до FileAccess) В ConsoleApp1.FileReadHelper.SingleFile(String path) location C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: ред номер 27 В ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0. <MultipleFilesAsync>b__0(Низ 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(Обект) --- Край на вътрешния стек с изключения --- В System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) В System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) In 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 localFinal) В System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable'1 source, ParallelOptions, Action'1 body, Action'2 bodyWithState, Action'3 bodyWithStateAndIndex, Func'4 bodyWithStateAndLocal, Func'5 bodyWithEverything, Func'1 localInit, Action'1 localFinal) в System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable'1 източник, тяло Action'1) В 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 Моля, натиснете който и да е клавиш, за да продължите...
Грешката е очевидна, тоест файлът не може да бъде достъпен, файлът не може да бъде прочетен, което е изключение, хвърлено при мултитрединг
Прочетох как е написан документът:
Настроих само режима на четене, не и режима на запис, и установих, че при многонишковост все още има грешка, нали е само за четене?
Ако е само за четене, не би трябвало да е грешка
Решение:
Това трябва да е четене на файлове в режим само за четене, тествах и установих, че не е грешка, и един и същ файл може да се чете едновременно в няколко нишки
|