Pb de fermeture d'une appli avec C#

Signaler
Messages postés
25
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
19 avril 2005
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,

Mon problème est le suivant : mon application gère, au moyen d'un thread, la communication entre un serveur et un client. En réalité, le serveur et le client sont totalement dissociés, chacun son Form, chacun son projet même...Bref, le serveur dispose d'un bouton Démarrer permettant de démarrer le serveur et donc de se tenir prêt pour envoyer au client, et un bouton Arrêter pour arrêter le serveur.

Le problème qui se pose : si je ne démarre pas le serveur (ou, en tout cas, s'il est arrêté) et que je ferme ma fenêtre, tout va bien.
Mais si je ferme ma fenêtre alors que le serveur tourne (donc le thread), mon appli reste dans la liste des processus actifs, comme si elle n'était pas fermée, pourtant ma fenêtre est bel et bien fermée.

Quelqu'un peut-il me dire d'où cela vient?

Merci :)

11 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
met fin au thread avant de quitter l'appli

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
25
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
19 avril 2005

Ben, si je quitte par le bouton Quitter, dans lequel j'ai mis "nomdemonthread".suspend (j'ai aussi testé .interrupt), ça change rien.
De plus, je sais pas comment on programme la fermeture par la croix en haut a droite...
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
je pensais plutot a Abort
pour executer des actions sur la fermeture du form sert toi des events Closing et/ou Closed

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
25
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
19 avril 2005

J'ai cherché un peu sur ces 2 event, mais j'ai pas saisi grand chose...
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Closing est déclenché avant la fermeture du form (il est encore possible d'annuler la fermeture, cf doc)
Closed est déclenché après

donc dans la méthode associée à l'un ou l'autre des events tu effectue ton Abort

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
25
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
19 avril 2005

Bon, j'ai mis ça dans mon code :

private void ServeurBlagues_Closed(object sender, System.EventArgs e)
{
this.srv.Arreter();
}

où srv est une instance de ma classe serveur (mon serveur donc), et Arreter() la méthode contenant l'abort de mon thread.

Ca ne change rien. Meme en remplacant closed par closing...rien du tout
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
et overrider System.Windows.Form.OnClose(); sa le ferait pas ?
Messages postés
25
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
19 avril 2005

Heu apparemment non, ça ne marche pas...
Messages postés
25
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
19 avril 2005

Bon, mon problème est résolu, voilà merci ^^
Messages postés
185
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
16 juillet 2016

Tu pourrais donnner ta solution ???

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Vu l'age de celui-ci, il vaudrait mieux que tu exposes ton problème dans un nouveau post.

/*
coq
MVP Visual C#
CoqBlog
*/