Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 23060|Válasz: 1

[Forrás] .net/c# többszálú, csak olvasható fájlmegoldás

[Linket másol]
Közzétéve 2017. 10. 11. 15:06:48 | | | |
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




Előző:Egy kattintásos újratelepítési útmutató telepítési segéd Rendszerasszisztens egy kattintásos újratelepítési útmutatója
Következő:.net/c# fájlolvasó művelet a fájl összes sorát csomagokban olvasható
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com