See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 23060|Vastuse: 1

[Allikas] .net/c# mitmelõimeline ainult lugemiseks mõeldud faililahendus

[Kopeeri link]
Postitatud 11.10.2017 15:06:48 | | | |
Käsitlemata erand: System.AggregateException: On esinenud üks või mitu viga. ---> System.IO.IOException: Faili "C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat" kasutab teine protsess, seega sellele failile ligi ei pääse.
   aadressil System.IO.__Error.WinIOError(Int32 errorCode, string maybeFullPath)
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 õigused, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions valikud, SECURITY_ATTRIBUTES secAttrs, string msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   System.IO.FileStreamis: ctor(Stringi tee, Failirežiimi režiim, FailiLigipääsu ligipääs, Failijagamise jagamine)
   System.IO.File.Open (stringitee, FileMode režiim, FileAccess ligipääs)
   ConsoleApp1.FileReadHelper.SingleFile(String path) asukohas C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: rea number 27
   In ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0. <MultipleFilesAsync>b__0(String x) Positsioon C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: Rea number 68
   In System.Threading.Tasks.Parallel.<>c__DisplayClass17_0'1. <ForWorker>b__1()
   System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   In System.Threading.Tasks.Task.<>c__DisplayClass176_0. <ExecuteSelfReplicating>b__0(Objekt)
   --- Sisemise erandipinu jälje lõpp ---
   System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) failis
   System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 to Exclusive, ParallelOptions parallelOptions, Action'1 body'2 bodyWithState, Func'4 bodyWithLocal, Func'1 localInit, Action'1 localLõpuks)
   System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable'1 source, ParallelOptions, Action'1 body'1, Action'2 bodyWithState, Action'3 bodyWithStateAndIndex, Func'4 bodyWithStateAndLocal, Func'5 bodyWithEverything, Func'1 localInit, Action'1 localLõpuks)
   aadressil System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable'1 allikas, Action'1 keha)
   ConsoleApp1.FileReadHelper.MultipleFilesAsync(IEnumerable'1 tee) asukohas C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: rea number 66
   ConsoleApp1.Program.Main(String[] args) positsioonil C:\project\my\TestNet\ConsoleApp1\Program.cs: rida number 73
Palun vajuta ükskõik millist klahvi, et jätkata...




Viga on ilmne, see tähendab, et failile ei pääse ligi, faili ei saa lugeda, mis on erand mitmelõimelises kasutamises

Lugesin, kuidas dokument on kirjutatud:

Määrasin ainult lugemisrežiimi, mitte kirjutamisrežiimi, ja avastasin, et mitme lõimelise puhul tuleb ikkagi viga, kas see pole ainult lugemiseks?

Kui see on ainult lugemiseks, ei tohiks see olla viga

Lahus:



See peaks olema failide lugemine ainult lugemise režiimis, testisin ja leidsin, et see ei ole viga ning sama faili saab lugeda samaaegselt mitme lõime all




Eelmine:Ühe klõpsuga paigaldusjuhend paigaldusabiline Süsteemiassistendi ühe klõpsuga uuesti paigalduse juhend
Järgmine:.net/c# faililugemisoperatsioon, et lugeda kõiki faili ridu partiidena
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com