Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 23060|Svar: 1

[Kilde] .net/c# multitrådet skrivebeskyttet filløsning

[Kopier link]
Opslået på 11/10/2017 15.06.48 | | | |
Ubehandlet undtagelse: System.Aggregeret undtagelse: En eller flere fejl er opstået. ---> System.IO.IOException: Filen "C:\SyncTemp\Position\Taxi\2017\09\09\Time\0000.dat" bruges af en anden proces, så denne fil kan ikke tilgås.
   på System.IO.__Error.WinIOError(Int32 fejlkode, streng maybeFullPath)
   I System.IO.FileStream.Init(Strengsti, Filtilstandstilstand, Filadgangsadgang, Int32-rettigheder, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions-indstillinger, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   I System.IO.FileStream: ctor(Strengsti, Filtilstand, Filadgangsadgang, Fildelingsdeling)
   I System.IO.File.Open(Strengsti, Filtilstand, Filadgangsadgang)
   På ConsoleApp1.FileReadHelper.SingleFile(String path) placering C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: linjenummer 27
   I ConsoleApp1.FileReadHelper.<>c__DisplayClass3_0. <MultipleFilesAsync>b__0(Streng x) Position C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: Linjenummer 68
   I System.Threading.Tasks.Parallel.<>c__DisplayClass17_0'1. <ForWorker>b__1()
   I System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   I System.Threading.Tasks.Task.<>c__DisplayClass176_0. <ExecuteSelfReplicating>b__0(Objekt)
   --- Slutningen på den interne undtagelsesstaksporing ---
   I System.Threading.Tasks.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   I System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   I 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 localFinally)
   I 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 localTFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable'1 kilde, Action'1 body)
   I ConsoleApp1.FileReadHelper.MultipleFilesAsync(IEnumerable'1 path) på placering C:\project\my\TestNet\ConsoleApp1\FileReadHelper.cs: linjenummer 66
   På ConsoleApp1.Program.Main(String[] args) position C:\project\my\TestNet\ConsoleApp1\Program.cs: linjenummer 73
Tryk venligst på en hvilken som helst tast for at fortsætte...




Fejlen er åbenlys, det vil sige, filen kan ikke tilgås, filen kan ikke læses, hvilket er en undtagelse under multithreading

Jeg læste, hvordan dokumentet er skrevet:

Jeg satte kun læsetilstanden, ikke skrivetilstanden, og fandt ud af, at under multitråding vil der stadig være en fejl, er det ikke læsebeskyttet?

Hvis det er skrivebeskyttet, burde det ikke være en fejl

Opløsning:



Dette burde læse filer i skrivebeskyttet tilstand, testet det og fundet ud af, at det ikke er en fejl, og at den samme fil kan læses samtidig under flere tråde




Tidligere:Én-klik geninstallationsvejledning installationsassistent Ét-klik geninstallationsguide til systemassistent
Næste:.net/c# fillæseoperation for at læse alle rækker i filen i batches
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com