2010-09-17 14 views
1

J'ai une application WinForm, et quand il est ouvert et j'essaie de redémarrer mon ordinateur, mon ordinateur se bloque juste et ne redémarre pas. Je dois fermer l'application WinForm, puis redémarrer et redémarrer mon ordinateur.L'application WinForm empêche le redémarrage de la machine?

Que puis-je faire pour résoudre ce problème?

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     if (!BoolShouldThisClose) 
     { 
      e.Cancel = true; 
      this.Visible = false; 
     } 
    } 
+0

Vous gérez manuellement les événements de fermeture de l'application winform. Mais même si c'est le cas, je crois que le système aurait dû tuer le processus. – loxxy

+1

Quel est le processus/travail de l'application. Je pense que nous pouvons vous aider, si vous pouvez partager plus de détails avec nous sur l'application. – loxxy

+0

En fait, maintenant que vous le mentionnez, je le fais. Je veux réduire mon formulaire à la barre d'état système au lieu de le fermer lorsque le "X" est pressé. Alors ouais, je ne sais pas comment je pourrais contourner cela quand mon ordinateur voudrait fermer l'application ... – sooprise

Répondre

1

Assurez-vous de prêter attention à la CloseReason de sorte que vous ne serez pas bloquer les fenêtres en essayant de fermer votre formulaire. Comme ceci:

protected override void OnFormClosing(FormClosingEventArgs e) { 
     if (e.CloseReason == CloseReason.UserClosing) { 
      this.Hide(); 
      e.Cancel = true; 
     } 
     else base.OnFormClosing(e); 
    } 
+0

J'ai quelque chose comme ça, donc ça doit bloquer la fin. Comment puis-je contourner cela? – sooprise

+0

Je pense que ce n'est pas vraiment quelque chose comme ça. Je ne peux pas deviner, poster un extrait de votre code dans votre question. –

+0

Je l'ai mis là-haut – sooprise

0

Avez-vous généré des threads dans votre application et sont-ils en cours d'exécution? Si c'est le cas, assurez-vous qu'ils sont définis sur IsBackground = true.

+0

Est-ce que les backgroundworkers auront déjà IsBackground = true? – sooprise