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 :

Threads et paramètres


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut Threads et paramètres
    Bonjour,

    Depuis quelques heures j'essai de trouver un moyen pour envoyer mes méthodes sur plusieurs threads avec des paramètres mais en vain...

    J'ai une contrainte qui est de ne pas pouvoir modifier la signature de mes méthodes ni leurs contenu. Du coup je ne peux pas utiliser "ParameterizedThreadStart", qui nécessite d'avoir comme type 'Object'.

    1- Y a t'il un moyen de contourner le problème?
    2- Pourrais je utiliser les delegates pour faire du multithreading?
    Sur cette article il ya un exemple d'utilisation mais je ne sais pas si c'est vraiment du multrithreading.
    http://tech.xster.net/tips/multi-threading-in-vb-net/

    Merci à vous

    PS: je travail avec VS2005

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu peux le faire en deux étapes :
    1. tu crées tes méthodes à toi qui seront appelées par les threads paramétrés
    2. dans les méthodes que t'auras créées tu récupères le paramètre passé par ton thread. À l'intérieur de chaque méthode exécutée par un thread, tu fais un appel correct aux méthodes dont t'as pas les droits de modifier.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Tu peux le faire en deux étapes :
    1. tu crées tes méthodes à toi qui seront appelées par les threads paramétrés
    2. dans les méthodes que t'auras créées tu récupères le paramètre passé par ton thread. À l'intérieur de chaque méthode exécutée par un thread, tu fais un appel correct aux méthodes dont t'as pas les droits de modifier.
    J'ai relu plusieurs fois ton message mais j'avou que je n'ai pas très bien saisi..

    Disant que j'ai comme méthode ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Public Sub DoWork(ByVal data As Integer) 
            'contenu faisant appel à d'autres méthodes
    End Sub
    Je déclare mon thread comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim MyThread As New System.Threading.Thread(AddressOf DoWork)
               MyThread .Name = "Thread1"
               MyThread .Start()
    C'est un example qui ne marche pas mais c'est juste pour comprendre ta solution. Sachant aussi que je ne peux pas créer mes propres méthodes comme ceux d'origines, car le contenu dépends de beaucoup de choses dont j'ai pas la maitrise.

  4. #4
    Invité
    Invité(e)
    Par défaut
    supposons que tu as la méthode suivante que tu ne peux modifier :
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub DoWork(ByVal data As Integer) 
            'contenu faisant appel à d'autres méthodes
    End Sub

    Ma solution est la suivante concernant les étapes :

    1-
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim MyThread As New System.Threading.Thread(New ParameterizedThreadStart(AddressOf DoWorkByThread))
    MyThread.Name = "Thread1"
    MyThread.Start()
    2 -
    Code VB.Net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public Sub DoWorkByThread(ByVal data As Object)
    	Dim val As Integer
    	val = Integer.Parse(data.ToString)
     
    	DoWork(val)
     
    End Sub

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Par défaut
    Je viens de l'appliquer est effectivement ça marche. De plus si une méthode possède plusieurs paramètres, on peut considérer que data est un tableau et ainsi ce tableau peut contenir les différents paramètres à passer.

    Merci!

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

Discussions similaires

  1. Passage de paramètres entre thread
    Par bluecurve dans le forum Langage
    Réponses: 3
    Dernier message: 25/05/2006, 02h06
  2. Réponses: 1
    Dernier message: 19/05/2006, 09h24
  3. Comment transmettre des paramètres à un thread?
    Par Pragmateek dans le forum Threads & Processus
    Réponses: 4
    Dernier message: 16/03/2006, 14h12
  4. [VB.net] Thread avec paramètres
    Par WriteLN dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/04/2005, 17h42
  5. [VB.NET] Threads et paramètres
    Par moufles03 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/10/2004, 17h36

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