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

Dotnet Discussion :

Fin de Thread ?


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Par défaut Fin de Thread ?
    Bonjour,
    Question générale sur les thread ici en vb.net mais je suppose c'est identique en c#

    Quand je lance un thread:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Dim Thread As New Thread(AddressOf BackupBDD.GetRemoteBDD)
                Thread.Start()
    Si ma fonction GetRemoteBDD se termine, le thread disparait ? Ou bien il faut faire un callback là où on le lance pour faire un .abort ?

    Merci

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    un thread se termine en effet à la fin de la méthode sur laquelle il est lancé

    thread.isalive passe alors à false, et .start ne peut plus être utilisé, il faut réinstancier le thread si on veut le relancer

    un thread peut aussi se terminer s'il est déclaré IsBackground = true (avant le start) et que le thread qui l'a lancé s'arrête (par un abort ou un interrupt je pense)


    abort et interrupt sont à éviter si on peut
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Par défaut
    merci

  4. #4
    Expert confirmé

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    un thread se termine en effet à la fin de la méthode sur laquelle il est lancé

    thread.isalive passe alors à false, et .start ne peut plus être utilisé, il faut réinstancier le thread si on veut le relancer

    un thread peut aussi se terminer s'il est déclaré IsBackground = true (avant le start) et que le thread qui l'a lancé s'arrête (par un abort ou un interrupt je pense)


    abort et interrupt sont à éviter si on peut
    Presque tout bon. Un background thread s'arrête quand le processus auquel il appartient s'arrête, et non quand le thread qui l'a lancé s'arrête (typiquement, fin de programme, que ce soit une terminaison normale ou suite à une exception)

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    comme quoi je devrais relire msdn de temps en temps (enfin Microsoft docs maintenant ^^) au lieu de rester sur ce que j'ai en tête depuis 10 ans
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 82
    Par défaut
    Du coup je ne comprends pas bien la différence entre le background et le normal. Ils s’arrêtent tout deux quand la méthode du thread est terminée et non pas que le thread appelant se termine !?

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    oui

    c'est que juste que par défaut isbackground = false
    donc si tu démarres un thread qui boucle while true + thread.sleep (genre pour faire un traitement dès qu'il détecte un truc à traiter),
    ce genre de thread ne s'arrête donc pas et l'application continuera même si tu arrêtes les autres thread, et tu ne verras ton exe en cours que dans la liste des processus du gestionnaire de tache
    genre tu fermes ta fenetre principale, ca arrête le thread qui va avec, et ton application ne s'arrête pas pour autant

    quand il n'y a plus que des threads IsBackground alors l'appli doit s'arrêter (et donc fermer ta fenetre devrait arreter les autres threads)

    mais si tes threads ne font qu'un traitement unique et assez court ca t'importe peu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Fin de thread
    Par DarkBear dans le forum C#
    Réponses: 8
    Dernier message: 31/05/2007, 15h21
  2. PostMessage et fin de thread
    Par titoine1978 dans le forum MFC
    Réponses: 8
    Dernier message: 26/05/2006, 22h50
  3. [C#] Attente fin de thread
    Par ekinox17 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 18/05/2006, 15h52
  4. Fin de Thread
    Par Grey dans le forum MFC
    Réponses: 3
    Dernier message: 24/04/2006, 14h47
  5. Attendre la fin des threads fils d'un processus
    Par SteelBox dans le forum Windows
    Réponses: 15
    Dernier message: 24/02/2006, 16h08

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