2011-12-28 4 views
0

Mon projet nécessite un redémarrage si l'utilisateur modifie les paramètres avant que les paramètres ne prennent effet. J'ai créé une invite DialogResult qui demande à l'utilisateur s'il veut redémarrer le programme. J'appelle un MessageBox qui renvoie un Oui/Non et si vous cliquez sur "non" il se comporte de manière appropriée et ne ferme pas le programme. Si vous choisissez "oui" l'application se ferme ... et c'est tout, pas de redémarrage. J'ai une certaine validation en cours que j'ai lue peut causer des problèmes, mais j'avais l'impression que c'était des problèmes avec la fermeture du programme, pas le redémarrage? Qu'est-ce qui pourrait empêcher l'application de redémarrer? Y a-t-il autre chose à la méthode que de simplement l'appeler que je dois faire?Mon application.Restart ne se termine pas?

je tente de redémarrer l'application appelant la méthode:

Application.Restart(); 

Quant à savoir si j'utilise des fils, je ne l'utilise consciemment les discussions parce que je ne sais pas vraiment ce que cela signifie pour être honnête.

+0

Veuillez ne pas préfixer les titres avec "C#" et autres. Utilisez les tags pour cela. –

+0

Pouvez-vous poster du code et expliquer votre scénario mieux? –

+0

Utilisez-vous des threads? Des méthodes de blocage? – Matthias

Répondre

0

Donc, grâce au lien ci-dessus, j'ai trouvé une recommandation sur un thread différent qui était une bonne solution pour simplement utiliser la méthode Application.Restart().

System.Diagnostics.Process.Start(Application.ExecutablePath); 
Application.Exit(); 

Il permet à mon programme de redémarrer très efficacement malgré ma validation de fermeture. Cela serait probablement encore un problème si je faisais une validation de fermeture liée à l'appel Application.Exit.

1

Généralement, lorsque vous utilisez cette méthode, votre application redémarre.

C'est habituellement une action de routine, mais j'ai vu dans votre question que vous avez une logique de validation en cours lorsque l'application est fermée. Ainsi, je suis sûr à 90% que cette erreur est survenue parce que certaines de ces validations ont échoué. Publiez le code de validation, et quelqu'un peut vous aider à déboguer le problème.