Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 24385|Svare: 4

[Kilde] C#-programmer tillater bare én instans å kjøre riktig kode

[Kopier lenke]
Publisert på 10.12.2016 14:55:50 | | | |


Jeg skrev et trafikkovervåkingsprogram som jeg vil at datamaskinen skal kjøre én gang, og koden er som følger:



Finn umiddelbart, klikk på programvaren, det vil vise "En instans har blitt kjørt", men,Etter å ha ventet i 30 sekunder, klikker du på programvaren, og den kjører igjenEn gang!!

Det er synd.Koden ovenfor fungerer fint i DEBUG-modus, men den fungerer ikke i RELEASE.
Problemet er at Mutex er deklarert som en lokal variabel, og i relese-modus på grunn av optimaliseringsproblemer, muligens fordi kompilatoren tror Mutex ikke lenger brukes

brukt, resirkulert, testet av meg selv,

Legg Mutex på toppen og sett det som en statisk variabel til !!HøyreKoden er som følger:





Score

Antall deltakere1MB+1 bidra+1 Sammenbrudd grunn
En liten nybegynner som elsker å lære + 1 + 1 Som en!

Se alle vurderinger





Foregående:C# tillater bare korrekt skriving av én instans av applikasjonen å kjøre
Neste:Hvordan sette opp programvare som starter automatisk.
 Vert| Publisert på 10.12.2016 15:02:58 |
Statiske felt resirkuleres ikke av GC, statiske felt allokeres i Loader-heapen, ikke-GC-heapen, og kontrolleres ikke av GC.

Statiske medlemmer (av statiske klasser eller ikke) resirkuleres kun når de når AppDomain.UnLoad. Statiske klasser har kun lov til å ha statiske medlemmer
Publisert på 06.12.2017 11:48:05 |
Lært, takk for at du delte
 Vert| Publisert på 23.02.2018 14:59:01 |
Andre implementeringer:

Oppstartsmetode:



 Vert| Publisert på 03.10.2025 16:10:11 |
.NET/C# implementerer programsingleton basert på Mutex og MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com