Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 23060|Atsakyti: 1

[Šaltinis] .net/c# kelių gijų tik skaitomų failų sprendimas

[Kopijuoti nuorodą]
Paskelbta 2017-10-11 15:06:48 | | | |
Neapdorota išimtis: System.AggregateException: įvyko viena ar daugiau klaidų. ---> System.IO.IOException: failą "C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat" naudoja kitas procesas, todėl šio failo pasiekti negalima.
   System.IO.__Error.WinIOError(Int32 klaidos kodas, eilutė galbūtFullPath)
   System.IO.FileStream.Init(Eilutės kelias, FileMode režimas, FileAccess prieiga, Int32 teisės, Bulio logikos useRights, FileShare bendrinimas, Int32 bufferSize, FileOptions parinktys SECURITY_ATTRIBUTES secAttrs, String msgPath, Bulio bFromProxy, Bulio logikos useLongPath, Bulio logikos checkHost)
   In System.IO.FileStream: ctor(Eilutės kelias, FileMode režimas, FileAccess prieiga, FileShare bendrinimas)
   System.IO.File.Open(Eilutės kelias, FileMode režimas, FileAccess prieiga)
   ConsoleApp1.FileReadHelper.SingleFile(String path) vietoje C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: eilutės numeris 27
   In ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0. <MultipleFilesAsync>b__0(Eilutė x) Pozicija C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: Eilutės numeris 68
   In System.Threading.Tasks.Parallel.<>c__DisplayClass17_0'1. <ForWorker>b__1()
   System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   Dalyje System.Threading.Tasks.Task.<>c__DisplayClass176_0. <ExecuteSelfReplicating>b__0(Objektas)
   --- Vidinių išimčių rietuvės sekimo --- pabaiga
   System.Threading.Tasks.Task.ThrowIfExceptional(Bulio logika includeTaskCanceledExceptions)
   System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 įExclusive, ParallelOptions parallelOptions, Action'1 body, Action'2 bodyWithState, Func'4 bodyWithLocal, Func'1 localInit, Action'1 localGaliausiai)
   In 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 localPagaliau)
   System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable'1 šaltinis, veiksmas'1 tekstas)
   ConsoleApp1.FileReadHelper.MultipleFilesAsync(IEnumerable'1 kelias) vietoje C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: 66 eilutės numeris
   At ConsoleApp1.Program.Main(String[] args) pozicija C:\project\my\TestNet\ConsoleApp1\Program.cs: eilutės numeris 73
Norėdami tęsti, paspauskite bet kurį klavišą. . . .




Klaida akivaizdi, tai yra, failo negalima pasiekti, failo negalima perskaityti, o tai yra išimtis, išmesta naudojant kelias gijas

Skaičiau, kaip parašytas dokumentas:

Aš tik nustatyti skaitymo režimą, o ne rašymo režimą, ir nustatė, kad pagal multi-threading, vis tiek bus klaida, ar ne tik skaityti?

Jei jis skirtas tik skaityti, tai neturėtų būti klaida

Sprendimas:



Tai turėtų būti failų skaitymas tik skaitymo režimu, išbandytas ir nustatytas, kad tai nėra klaida, o tą patį failą galima skaityti vienu metu keliose gijose




Ankstesnis:Vieno paspaudimo pakartotinio diegimo pamokos diegimo asistentas Sistemos asistento pakartotinio diegimo vadovas Vienu paspaudimu
Kitą:.net/c# failo skaitymo operacija, skirta skaityti visas failo eilutes paketais
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com