Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 24385|Répondre: 4

[Source] Les programmes C# n’autorisent qu’une seule instance à exécuter le bon code

[Copié le lien]
Publié sur 10/12/2016 14:55:50 | | | |


J’ai écrit un logiciel de surveillance du trafic que je veux que l’ordinateur ne fasse fonctionner qu’une seule fois, et le code est le suivant :



Chercher, immédiatement, cliquez sur le logiciel, il affichera « Une instance a été exécutée », mais,Après avoir attendu 30 secondes, puis cliquer sur le logiciel, et il redémarre correctementUne fois !!

C’est dommage.Le code ci-dessus est correct en mode DEBUG, mais il ne fonctionne pas en RELEASE.
Le problème est que Mutex est déclaré comme une variable locale, et en mode relese à cause de problèmes d’optimisation, possiblement parce que le compilateur pense que Mutex n’est plus utilisé

utilisé, recyclé, testé par moi-même,

Mets Mutex au-dessus et mets-le en variable statique sur !!DroiteLe code est le suivant :





Score

Nombre de participants1MO+1 contribuer+1 Effondrement raison
Un petit novice qui adore apprendre + 1 + 1 Comme un !

Voir toutes les notes





Précédent:C# ne permet que l’écriture correcte d’une seule instance de l’application pour s’exécuter
Prochain:Comment configurer le démarrage automatique du logiciel.
 Propriétaire| Publié sur 10/12/2016 15:02:58 |
Les champs statiques ne sont pas recyclés par le GC, les champs statiques sont alloués dans le tas Loader, non GC, et ne sont pas contrôlés par le GC.

Les membres statiques (de classes statiques ou non) ne sont recyclés que lorsqu’ils atteignent AppDomain.UnLoad. Les classes statiques ne peuvent avoir que des membres statiques
Publié sur 06/12/2017 11:48:05 |
Learned, merci de partager
 Propriétaire| Publié sur 23/02/2018 14:59:01 |
Autres implémentations :

Méthode de démarrage :



 Propriétaire| Publié sur 03/10/2025 16:10:11 |
.NET/C# implémente un single de programme basé sur Mutex et MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com