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

Utsikt: 19013|Svare: 0

[Kilde] C# tillater bare korrekt skriving av én instans av applikasjonen å kjøre

[Kopier lenke]
Publisert på 10.12.2016 14:35:34 | | |
C#-programmer tillater bare én instans å kjøre riktig kode
http://www.itsvse.com/thread-3391-1-1.html
(Kilde: Arkitekt)


Koden under er også feil!! Korrekt kode som over!!


Noen ganger må vi bare tillate én instans av applikasjonen å kjøre, og når prosessen starter, hvis den oppdager at en instans av applikasjonen kjører, vil den automatisk stoppe å kjøre. Vi implementerer det vanligvis i hovedfunksjonen via en Mutex-mutex, som vanligvis skrives:

Når vi leter etter svar, kommer og går vi ofte i all hast, og ignorerer funksjonene og forholdsreglene til Mutex. Etter en enkel test, OK, ta den og bruk den. På dette tidspunktet overser vi en viktig forutsetning:Mutex navnekonvensjoner. Skrivemetoden ovenfor fungerer uten problemer under én enkelt bruker; Under flerbruker kan hver bruker starte én instans, så én enkelt instans kan ikke garanteres.

Hvis du trenger å bruke det på en terminalserver og bare tillater én instans, bruk følgende metode:


Her er beskrivelsen av MSDN:


På servere som kjører terminaltjenester, kan navngitt systemmutex ha to nivåer av synlighet. Hvis navnet starter med prefikset "Global\", er mutexen synlig i alle terminalserversesjoner. Hvis navnet starter med prefikset "Local\", er mutexen kun synlig i terminalserver-sesjonen som opprettet den. I dette tilfellet kan hver annen terminalserversesjon på serveren ha en separat mutex med samme navn. Hvis du lager en navngitt mutex uten å spesifisere et prefiks, vil den ta prefikset "Local\". I en terminalserverøkt er to mutexer med forskjellige navneprefikser uavhengige mutex, og de to mutexene er synlige for alle prosesser i terminalserversesjonen. Det vil si at prefiksnavnene "Global" og "Local" beskriver området til mutex-navnet i forhold til terminalserversesjonen, ikke til prosessen.






Foregående:Registrering av komponenter for COM-interop er grået ut
Neste:C#-programmer tillater bare én instans å kjøre riktig kode
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