Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 19013|Válasz: 0

[Forrás] A C# csak egy példány helyes írását engedi az alkalmazás futtatására

[Linket másol]
Közzétéve 2016. 12. 10. 14:35:34 | | |
A C# programok csak egy példánynak engedik a helyes kód futtatását
http://www.itsvse.com/thread-3391-1-1.html
(Forrás: Architect)


Az alábbi kód is hibás!! Helyes kód a fentebb alábbihoz!!


Néha csak egy példányt kell engedélyeznünk az alkalmazásnak, és amikor a folyamat elindul, ha azt tapasztalja, hogy egy példány fut, automatikusan leáll. Általában a Fő funkcióban valósítjuk meg Mutex mutexen keresztül, amely általában így írható:

Amikor válaszokat keresünk, gyakran sietve jösszünk-megyünk, figyelmen kívül hagyva a Mutex jellemzőit és óvintézkedéseit. Egy egyszerű teszt után, rendben, csináld meg és használd. Ezen a ponton figyelmen kívül hagyunk egy fontos előfeltételt:Mutex névadási konvenciók. A fenti írásmód egyetlen felhasználó alatt gond nélkül működik; Többfelhasználós állapotban minden felhasználó elindíthat egy példányt, így egyetlen példány nem garantálható.

Ha terminálszerveren kell használni, és csak egy példányt engedélyezsz, használd a következő módszert:


Íme az MSDN leírása:


Terminálszolgáltatásokat futtató szervereken a nevelt rendszer mutexje két szintű láthatósággal bírhat. Ha a név a "Global\" előtaggal kezdődik, a mutex minden terminálszerver ülésen látható. Ha a név a "Local\" előtaggal kezdődik, a mutex csak a terminálszerver ülésen látható, ahol létrehozta. Ebben az esetben minden másik terminálszerver ülésnek lehet egy külön mutex ugyanazzal a névvel megvan. Ha létrehozol egy nevelt mutexet előtag megadás nélkül, akkor az "Local\" előtagot veszi fel. Egy terminálszerver ülés során két különböző névelőtagú mutex független mutex, és ezek a két mutex minden folyamat számára látható a terminálszerver ülés során. Vagyis a "Global" és "Local" előtagok a mutex név tartományát a terminálszerver üléshez viszonyítják, nem a folyamathoz.






Előző:A COM interop komponenseinek regisztrálása szürke színűen van
Következő:A C# programok csak egy példánynak engedik a helyes kód futtatását
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com