Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19013|Svar: 0

[Källa] C# tillåter endast korrekt skrivning av en instans av applikationen att köras

[Kopiera länk]
Publicerad på 2016-12-10 14:35:34 | | |
C#-program tillåter bara en instans att köra korrekt kod
http://www.itsvse.com/thread-3391-1-1.html
(Källa: Architect)


Koden nedan är också fel!! Korrekt kod som ovan!!


Ibland behöver vi tillåta att bara en instans av applikationen körs, och när processen startar, om den upptäcker att en instans av applikationen körs, slutar den automatiskt köras. Vi implementerar den vanligtvis i huvudfunktionen via en Mutex-mutex, som vanligtvis skrivs:

När vi letar efter svar kommer och går vi ofta snabbt och ignorerar Mutex funktioner och försiktighetsåtgärder. Efter ett enkelt test, okej, ta det och använd det. Vid denna punkt förbiser vi en viktig förutsättning:Mutex namngivningskonventioner. Ovanstående skrivmetod fungerar utan problem under en enda användare; Under multi-user kan varje användare starta en instans, så en enskild instans kan inte garanteras.

Om du behöver använda det på en terminalserver och bara tillåter en instans, använd följande metod:


Här är beskrivningen av MSDN:


På servrar som kör terminaltjänster kan namngiven systemmutex ha två nivåer av synlighet. Om namnet börjar med prefixet "Global\" är mutexen synlig i alla terminalserversessioner. Om namnet börjar med prefixet "Local\" är mutexen endast synlig i terminalserversessionen som skapade den. I detta fall kan varje annan terminalserversession på servern ha en separat mutex med samma namn. Om du skapar en namngiven mutex utan att specificera ett prefix kommer prefixet "Local\" att ta prefixet. I en terminalserversession är två mutexar med olika namnprefix oberoende mutex, och de två mutexen är synliga för alla processer i terminalserversessionen. Det vill säga, prefixnamnen "Global" och "Local" beskriver intervallet för mutexnamnet i förhållande till terminalserverns session, inte till processen.






Föregående:Att registrera komponenter för COM-interop är nedtonat
Nästa:C#-program tillåter bara en instans att köra korrekt kod
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com