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 :

[WinForms]BackgroundWorker et threads [Fait]


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    b4u
    b4u est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut [WinForms]BackgroundWorker et threads
    Bonjour,

    j'aimerais comprendre comment fonctionnent les évenements ProgressChanged et RunWorkerCompleted de System.ComponentModel.BackgroundWorker: par exemple, imaginons que dans mon thread principal j'instancie une nouvelle Form qui contient en membres privés un BackgroundWorker et un bouton. Lorsque l'utilisateur clique sur le bouton, j'appelle BackgroundWorker.RunWorkerAsync. Cette méthode n'attend pas la fin du traitement pour retourner, elle lance donc son traitement dans un thread séparé. Puis dans le handler de l'événement RunWorkerCompleted, je décide de mettre a jour mes controles: pourquoi je n'ai pas besoin d'appeler Control.Invoke, alors que je suis pourtant dans un autre thread que celui qui les a instancié?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut mmh
    Bonjour,

    Je sais pas si ce que je vais te dire va réellement t'éclairer:

    Quand le backgroundworker met à jour les contrôles de ton interface, il utilise un event handler qui est appelé à partir du thread qui a créé les contrôles. L'appel de cet handler est donc déjà "thread-safe".

    Pour plus d'infos, tu peux aller voir dans la doc le topic:
    How to: Make Thread-Safe Calls to Windows Forms Controls

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 129
    Par défaut
    Salut b4u,

    Je t'invite à consulter ce tutoriel : http://glarde.developpez.com/dotnet/bgworker/cs/

    et à considérer la suggestion de philouf0183 :

    Pour plus d'infos, tu peux aller voir dans la doc le topic:
    How to: Make Thread-Safe Calls to Windows Forms Controls
    Avec ça, tu devrais te débrouiller !

    iDaaX

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

Discussions similaires

  1. BackgroundWorker ou Thread
    Par youtpout978 dans le forum C#
    Réponses: 18
    Dernier message: 18/05/2011, 23h36
  2. Réponses: 10
    Dernier message: 26/11/2008, 23h18
  3. Winforms et Multi-threading
    Par CrazyDev dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/09/2007, 18h47
  4. [C# 2.0] Lancer une winform en multi thread
    Par Khrysby dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 11/07/2007, 10h56
  5. [WinForms]BackgroundWorker et BD
    Par kikoj dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 23/10/2006, 15h03

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