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

VB.NET Discussion :

Problème avec l'utilisation de thread


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut Problème avec l'utilisation de thread
    Bonjour à tous
    J'utilise un thread dans une application en vb.net qui appel un fichier php distant m' indiquant si j'ai reçus de nouveaux mail.
    Dans le cas ou il yen a bien des nouveaux, mon thread m'affiche un popup ( une form ) contenant la liste des mails.

    Cependant, quand j'essaie de faire formMail.show(), ma form s'affiche mais plante, il ya une erreur comme quoi le thread ne peut charger ma form.

    Pour eviter ce problème je voudrais simplement lancer ma procédure openpop() qui se trouve dans ma formMain.
    Comme pourrais-je faire pour faire éxécuter a ma form principale une procédure via mon thread

    J'espere m'etre bien expliquer. Merci à vous de m'éclairer
    Cordialement Djay

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Fait une recherche dans le forum, il y a déjà eu plusieurs fois cette question. ça vient du fait que l'interface ne peut être modifiée que par le thread principal. Tu dois utiliser un delegate pour appeler une méthode modifiant l'interface depuis un autre thread.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    J'ai regardé la l'utilisation de "invoke" et des procédures delegate mais je n'arrive pas a faire fonctionner la communication.

    dans ma frmMain je met:
    Public Sub openpopup()
    frmpopup.Show()
    End Sub

    Public Delegate Sub openpopupDelegateHandler()
    Public openpopupDelegate As openpopupDelegateHandler = New openpopupDelegateHandler(AddressOf openpopup)

    et dans le traitement de mon thread dans le module threads.vb :
    Me.Invoke(frmMain.openpopupDelegate)

  4. #4
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Utilise les balise code ! On y voit rien avec ton code !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Utilisation d'un delegué :
    Private Delegate Sub Open()
     
    'utilisation dans un evenement :
    Invoke(New Open(AddressOf Procedure))
     
    'procédure appellée par le delegué
    Private Sub Procedure()
      Form.Show
    End Sub
    C'est plus clair non ?

    Sinon utilisation d'un BackGroundWroker possible dans ton cas mais pas indispensable :
    BackGroundWorker
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/04/2009, 10h49
  2. [WD9] Problème avec l'utilisation des threads
    Par ramaro dans le forum WinDev
    Réponses: 2
    Dernier message: 29/01/2007, 11h51
  3. Problème avec l'utilisation de librairies
    Par Aradesh dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 15h00
  4. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  5. Problème avec l'utilisation de la fonction clock
    Par Matgic95 dans le forum C++Builder
    Réponses: 13
    Dernier message: 09/05/2005, 19h27

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