Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19013|Odpoveď: 0

[Zdroj] C# umožňuje spustenie správneho zápisu len jednej inštancie aplikácie

[Kopírovať odkaz]
Zverejnené 10. 12. 2016 14:35:34 | | |
Programy v C# umožňujú len jednej inštancii spustiť správny kód
http://www.itsvse.com/thread-3391-1-1.html
(Zdroj: Architect)


Kód nižšie je tiež nesprávny!! Správny kód ako vyššie!!


Niekedy musíme povoliť spustenie len jednej inštancie aplikácie a keď sa proces spustí, ak zistí, že inštancia aplikácie beží, automaticky prestane bežať. Zvyčajne ho implementujeme v hlavnej funkcii cez mutex mutex, ktorý je zvyčajne napísaný:

Keď hľadáme odpovede, často prichádzame a odchádzame v zhone, ignorujúc funkcie a opatrenia Mutexu. Po jednoduchom teste, dobre, vezmi si to a použi. V tomto bode prehliadame dôležitú podmienku:Mutex konvencie pomenovania. Vyššie uvedená metóda písania funguje bez problémov pod jedným používateľom; Pri multi-user režime môže každý používateľ začať jednu inštanciu, takže jedna inštancia nie je zaručená.

Ak ho potrebujete použiť na terminálovom serveri a povoliť len jednu inštanciu, použite nasledujúcu metódu:


Tu je popis MSDN:


Na serveroch bežiacich terminálové služby môže mať pomenovaný systémový mutex dve úrovne viditeľnosti. Ak názov začína prefixom "Global\", mutex je viditeľný vo všetkých reláciách terminálového servera. Ak názov začína prefixom "Local\", mutex je viditeľný iba v relácii terminálového servera, ktorá ho vytvorila. V takom prípade môže mať každá relácia terminálového servera na serveri samostatný mutex s rovnakým názvom. Ak vytvoríte pomenovaný mutex bez špecifikácie predpony, preberie prefix "Local\". V relácii terminálového servera sú dva mutexy s rôznymi prefixmi mena nezávislými mutexmi a tieto dva mutexy sú viditeľné všetkým procesom v relácii terminálového servera. To znamená, že prefixové názvy "Global" a "Local" opisujú rozsah názvu mutex vzhľadom na reláciu terminálového servera, nie voči samotnému procesu.






Predchádzajúci:Registrácia komponentov pre COM interop je sivá
Budúci:Programy v C# umožňujú len jednej inštancii spustiť správny kód
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com