Kezeletlen kivétel: System.AggregateException: Egy vagy több hiba történt. ---> System.IO.IOException: A "C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat" fájlt egy másik folyamat használja, így ez a fájl nem érhető el. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) A System.IO.FileStream.Init(String path, FileMode mód, FileAccess access, Int32 jogok, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions opciók, SECURITY_ATTRIBUTES secAttrs, string msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) A System.IO.FileStream fájlban: ctor(String út, FileMode mód, FileAccess hozzáférés, FileShare megosztás) A System.IO.File.Open (String path, FileMode mód, FileAccess hozzáférés) A ConsoleApp1.FileReadHelper.SingleFile(String path) helyen C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: 27. sor A ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0 verzióban. <MultipleFilesAsync>b__0(x sorozat) C-pozíció: \project\my\TestNet\ConsoleApp1\FileReadHelper.cs: 68. sor A System.Threading.Tasks.Parallel.<>c__DisplayClass17_0'1 fájlban. <ForWorker>b__1() A System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) fájlban A System.Threading.Tasks.Task.<>c__DisplayClass176_0 fájlban. <ExecuteSelfReplicating>b__0(Tárgy) --- A belső kivétel-verem követés vége --- A System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) fájlban A System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationTokenCancellationToken) fájlban A 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) A 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) at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable'1 forrás, Action'1 test) A ConsoleApp1.FileReadHelper.MultipleFilesAsync(IEnumerable'1 path) pozícióban C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: 66. sor A ConsoleApp1.Program.Main(String[] args) pozíciónál C:\project\my\TestNet\ConsoleApp1\Program.cs: 73. sor szám Kérlek, nyomjon bármelyik billentyűt a folytatáshoz...
A hiba nyilvánvaló, vagyis a fájl nem érhető el, a fájl nem olvasható, ami kivétel a többszálas kezelés alatt
Olvastam, hogyan van megírva a dokumentum:
Csak az olvasási módot állítottam be, nem az írásmódot, és azt tapasztaltam, hogy többszálas kezelés esetén még mindig hiba lesz, nem csak olvasható?
Ha csak olvasható, akkor nem lehet hiba
Megoldás:
Ez csak olvasható módban olvasható fájlokat kellene olvasni, teszteltem, és megállapítottam, hogy nem hiba, és ugyanazt a fájlt egyszerre lehet olvasni több szál alatt
|