IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Fin de programme et arret de thread


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut Fin de programme et arret de thread
    Bonjour,

    j'ai fait une petite appli pour ecouter un port UDP, j'utilise donc un thread separe pour ecouter le port, pas de soucis (meme si au passage je suis surpris de ne pas trouver ce bon vieux controle WinSock sous VB.Net).
    Quand je ferme ma feuille, par le click sur un bouton de fermeture, j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If ListenThread.ThreadState = ThreadState.Running Then ListenThread.Abort()
    Me.Close()
    La feuille se ferme evidemment, mais pour VB mon programme tourne toujours. Je ne vois pourtant pas la raison, avez vous une idee ?

  2. #2
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Quand on regarde msdn, Thread.Abort signale que l'appel de cette méthode arrête généralement le thread.
    Le mot généralement ne veut pas dire systematiquement ... le probleme doit venir de là.
    Essaye Thread.Freeze

  3. #3
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Thread.Freeze n'est pas reconnu sur ma machine, je ne vois pas Freeze dans les methodes du membre Thread dans MSDN.
    Pour info, j'ai VB2008 Express et le framework 3.5

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Thread.Freeze n'existe pas (du moins pas dans System.Threading.Thread, mais ça existe dans EnvDTE.Thread...)
    Je ne vois pas exactement pourquoi Abort ne marche pas, mais pour que ton thread ne bloque pas la fermeture de l'application il faut le définir comme thread d'arrière-plan :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListenThread.IsBackground = True

  5. #5
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Merci, effectivement en ajoutant le "IsBackGround", ca fonctionne.
    J'avoue que je nage un peu avec ces histoires de Thread, les "Delegate", "InvokeRequired", etc... que j'ai du mettre pour faire une simple ecoute d'un port UDP me font parfois terriblement regretter VB6, meme si je sais que je n'ai pas trop le choix...
    Je mets le sujet Resolu donc, mais a tout hasard, connaissez vous un composant Net gratuit equivalent du bon vieux Winsock ? (J'avoue ne pas avoir recherche mais je compte le faire )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 04/06/2007, 22h43
  2. Réponses: 6
    Dernier message: 27/10/2005, 12h58
  3. j'arrive pas a arreter mon thread d'arriere-plan
    Par ms91fr dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2003, 21h36
  4. probleme a l'arret de threads
    Par Sei dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/12/2002, 12h15
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo