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

Pohľad: 24385|Odpoveď: 4

[Zdroj] Programy v C# umožňujú len jednej inštancii spustiť správny kód

[Kopírovať odkaz]
Zverejnené 10. 12. 2016 14:55:50 | | | |


Napísal som softvér na monitorovanie dopravy, ktorý chcem, aby počítač bežal len raz, a kód je nasledovný:



Nájdite okamžite, kliknite na softvér, zobrazí sa výzva "Inštancia bola spustená", ale,Po 30 sekundách klikni na softvér a opäť sa úspešne spustíRaz!!

Je to škoda.Vyššie uvedený kód je v DEBUG režime v poriadku, ale v RELEASE nefunguje.
Problém je v tom, že Mutex je deklarovaný ako lokálna premenná a v režime relese kvôli optimalizačným problémom, pravdepodobne preto, že kompilátor si myslí, že Mutex už nie je používaný

Používané, recyklované, testované mnou,

Daj Mutex navrch a nastav ho ako statickú premennú na !!DopravaKód je nasledovný:





Skóre

Počet účastníkov1MB+1 prispieť+1 Kolaps dôvod
Malý začiatočník, ktorý miluje učenie + 1 + 1 Ako jeden!

Zobraziť všetky hodnotenia





Predchádzajúci:C# umožňuje spustenie správneho zápisu len jednej inštancie aplikácie
Budúci:Ako nastaviť automatické spúšťanie softvéru.
 Prenajímateľ| Zverejnené 10. 12. 2016 15:02:58 |
Statické polia nie sú recyklované GC, statické polia sú prideľované do haldy nakladača, ne-GC haldy a nie sú riadené GC.

Statické členy (či už statických tried alebo nie) sa recyklujú až vtedy, keď dosiahnu AppDomain.UnLoad. Statické triedy môžu mať iba statické členy
Zverejnené 6. 12. 2017 11:48:05 |
Naučil som sa, ďakujem za zdieľanie
 Prenajímateľ| Zverejnené 23. 2. 2018 14:59:01 |
Ďalšie implementácie:

Štartovacia metóda:



 Prenajímateľ| Zverejnené 3. 10. 2025 16:10:11 |
.NET/C# implementuje programový singleton založený na Mutex a MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
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