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 :

[VB.NET 1.1] [Thread] Méthode invoke


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut [VB.NET 1.1] [Thread] Méthode invoke
    Bonjour,
    je suis désolé de remonter ce post mais là je me noie...
    J'ai lu ce tuto, j'ai essayé de l'appliquer en VB mais je sèche.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        Private Delegate Sub TestIPDelegateHandler(ByVal strAdIP As String)
        Private TestIPDelegate As TestIPDelegateHandler
     
        'Thread principal
        Private Sub thTestIP()
            For Each dr As DataRow In Ds8.Tables(0).Rows
                Dim strIP As String = CType(dr.Item(1), String)
                Dim o As Object() = {strIP}
                Me.Invoke(Me.TestIPDelegate, o)
            Next
        End Sub
     
        'Affichage testIP
        Private Sub UpdateTestIp(ByVal strAdIP As String)
            MessageBox.Show(TestIp(strAdIP).ToString())
        End Sub
     
        'Cmd start
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim t As Thread = New Thread(AddressOf thTestIP)
            t.Start()
        End Sub
    Le souci est que la sub UpdateTestIp n'est jamais appelée.
    Merci d'avance !

  2. #2
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut Re: [VB.NET 1.1] [Thread] Méthode invoke
    Re Salut,
    je viens de ré-éditer mon post et mon titre car ça ne correspondait plus à mes recherches...
    En fait j'essaye de lancer une procédure gourmande (TestIp) à partir de chaque row d'une DataTable. Chaque test se solde par une modification d'un TreeView, d'une ProgressBar, d'un GroupBox...
    Merci d'avance de me sortir de ce sac de noeuds...

  3. #3
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Si tu mets un breakpoint dans ton for each, il rentre bien dedans ?
    Comme ça vu ton code, cela me parait juste.

  4. #4
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut
    Il y rentre effectivement mais si je fais la manip en 'pas à pas' il se perd après la ligne Me.Invoke et si j'arrête l'appli il y a quelque chose qui tourne et qui empêche la fermeture.
    Mais il ne passe jamais dans la sub UpdateTestIp.
    D'ailleurs je ne comprends pas trop comment il devrait s'y rendre ? par rapport à la signature ? Parce que je dois avoir d'autres fonctions avec un string en argument.
    Merci d'avance !

  5. #5
    DrQ
    DrQ est déconnecté
    Membre expérimenté
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Points : 1 515
    Points
    1 515
    Par défaut
    Ah vi j'avais pas fait attention à ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Invoke(New TestIPDelegateHandler(UpdateTestIp), o);
    Par contre le code est peut être pas très juste j'ai traduit du C#.

  6. #6
    Membre actif Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Points : 296
    Points
    296
    Par défaut
    Nickel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Me.Invoke(New TestIPDelegateHandler(AddressOf UpdateTestIp), o)
    Un grand merci, tu m'enlève une grosse épine du pied, ce n'est pas la seule mais bon...maintenant je vais pouvoir passer au BeginInvoke.
    C'est pas encore gagné, me reste plus qu'a traduire le tout correctement en VB.
    Merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/02/2011, 11h16
  2. [VB.NET] Problème de Thread
    Par Sadneth dans le forum ASP.NET
    Réponses: 26
    Dernier message: 31/01/2006, 11h12
  3. [.NET] Pourquoi redéfinir la méthode dispose() d'une forme?
    Par Polyptyx dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 07/09/2004, 13h10
  4. Réponses: 4
    Dernier message: 02/07/2004, 11h31
  5. [SWING][THREAD]Méthodes pour afficher une Frame
    Par pompidouwa dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 05/05/2004, 11h35

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