2009-11-18 9 views
1

Lorsque je lance mon application et que j'appuie sur le bouton «X» de mon application, ou sur le bouton Quitter qui se déploie: me.close Il ne fermera pas complètement l'application. Comme l'instance est toujours en cours d'exécution dans Visual Studio ou si vous allez dans les processus du gestionnaire de tâches, vous pouvez toujours le voir. Comment ferais-je cela pour fermer?L'application VB.NET ne se ferme pas complètement

Répondre

5

Une possibilité est que vous ayez des threads en dehors du thread principal en cours d'exécution, et ce ne sont pas des threads d'arrière-plan. En général, essayez de le déboguer: attachez-le à partir de VS, et utilisez le bouton Pause pour le casser, et regardez quels threads sont là, et ce qu'ils font.

+0

Je veux dire, y a-t-il un moyen rapide et facile de résoudre ce problème, en mettant fin à tout le processus au lieu de passer par tout ce creusement? – lab12

+1

La seule façon de le réparer est de trouver ce qui ne va pas. Si vous avez encore un thread en cours d'exécution, l'arrêt du processus sans tenir compte de ce thread peut entraîner une perte de données (par exemple si vous écrivez dans un fichier à ce moment-là) et d'autres effets secondaires désagréables. Cela dit, si ce que vous voulez est un _hack_ plutôt que de corriger, alors 'Environment.Exit()' sur le thread principal va fermer tous les threads en cours d'exécution, puis le processus. –

4

Si le ou les threads s'exécutent dans l'application, définissez la propriété IsBackground sur True.

Thread.IsBackground Property sur MSDN

Remarques

Un fil est soit un fil de fond ou d'un fil de premier plan. Contexte les fils sont identiques aux fils d'avant-plan , sauf que les fils de fond n'empêchent pas un processus de de se terminer. Une fois que tous les threads d'avant-plan appartenant à un processus ont terminé , le langage commun runtime met fin au processus. Les threads d'arrière-plan restants sont arrêtés et ne se terminent pas.

2

Le mot clé "End" est ce que vous cherchez.

Mettez-le dans l'événement FormClosed.

Questions connexes