Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 24385|Risposta: 4

[Fonte] I programmi C# permettono a una sola istanza di eseguire il codice corretto

[Copiato link]
Pubblicato su 10/12/2016 14:55:50 | | | |


Ho scritto un software di monitoraggio del traffico che voglio far girare il computer solo una volta, e il codice è il seguente:



Trova, immediatamente, clicca sul software, ti verrà chiesto "Un'istanza è stata eseguita", ma,Dopo aver aspettato 30 secondi, clicca sul software e torna a funzionare con successoUna volta!!

Peccato.Il codice sopra va bene in modalità DEBUG, ma non funziona in RELEASE.
Il problema è che Mutex viene dichiarato come variabile locale e in modalità relese a causa di problemi di ottimizzazione, probabilmente perché il compilatore pensa che Mutex non venga più usato

Usato, riciclato, testato da me stesso,

Metti Mutex sopra e impostalo come variabile statica su !!A destraIl codice è il seguente:





Punteggio

Numero di partecipanti1MB+1 contribuire+1 Collasso ragione
Un piccolo principiante che ama imparare + 1 + 1 Proprio uno!

Vedi tutte le valutazioni





Precedente:C# consente di eseguire la scrittura corretta di un'istanza dell'applicazione
Prossimo:Come configurare l'avvio automatico del software.
 Padrone di casa| Pubblicato su 10/12/2016 15:02:58 |
I campi statici non vengono riciclati dal GC, i campi statici sono allocati nel Loader heap, nel non-GC heap e non controllati dal GC.

I membri statici (di classi statiche o meno) vengono riciclati solo quando raggiungono AppDomain.UnLoad. Le classi statiche possono avere solo membri statici
Pubblicato su 06/12/2017 11:48:05 |
Imparato, grazie per aver condiviso
 Padrone di casa| Pubblicato su 23/02/2018 14:59:01 |
Altre implementazioni:

Metodo di avvio:



 Padrone di casa| Pubblicato su 03/10/2025 16:10:11 |
.NET/C# implementa un singolo di programma basato su Mutex e MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com