Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 24385|Răspunde: 4

[Sursă] Programele C# permit doar o singură instanță să ruleze codul corect

[Copiază linkul]
Postat pe 10.12.2016 14:55:50 | | | |


Am scris un software de monitorizare a traficului pe care vreau ca calculatorul să-l ruleze o singură dată, iar codul este următorul:



Găsește, imediat, dă click pe software, va apărea "A fost rulată o instanță", dar,După ce aștepți 30 de secunde, apoi dai click pe software și rulează din nou cu succesO dată!!

Păcat.Codul de mai sus este în regulă în modul DEBUG, dar nu funcționează în RELEASE.
Problema este că Mutex este declarat ca o variabilă locală și în modul relese din cauza unor probleme de optimizare, posibil pentru că compilatorul crede că Mutex nu mai este folosit

Folosită, reciclată, testată de mine,

Pune Mutex deasupra și setează-l ca variabilă statică pe !!DreaptaCodul este următorul:





Scor

Numărul participanților1MB+1 Contribui+1 Colaps rațiune
Un mic începător care iubește să învețe + 1 + 1 Ca unul!

Vezi toate ratingurile





Precedent:C# permite rularea corectă a unei singure instanțe a aplicației
Următor:Cum să configurezi pornirea automată a software-ului.
 Proprietarul| Postat pe 10.12.2016 15:02:58 |
Câmpurile statice nu sunt reciclate de GC, câmpurile statice sunt alocate în heap-ul Loader, heap-ul non-GC și nu sunt controlate de GC.

Membrii statici (ai claselor statice sau nu) sunt reciclați doar când ajung la AppDomain.UnLoad. Clasele statice pot avea doar membri statici
Postat pe 06.12.2017 11:48:05 |
Învățat, mulțumesc că ai împărtășit
 Proprietarul| Postat pe 23.02.2018 14:59:01 |
Alte implementări:

Metoda de pornire:



 Proprietarul| Postat pe 03.10.2025 16:10:11 |
.NET/C# implementează programul singleton bazat pe Mutex și MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com