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] Thread avec paramètres


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut [VB.net] Thread avec paramètres
    Bonjour,

    J'essaie désespérément de lancer une fonction avec paramètres dans un thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim myThread As New System.Threading.Thread(AddressOf update_itemLocation(a,b))
                        myThread.IsBackground = True
                        myThread.Start()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub update_itemLocation(ByVal cur_item As String, ByVal cur_location As String)
            'Mise à jour de l'article
        End Sub
    Je reçois une erreur du compilateur me signalant que je ne peux pas donner de fonction avec des paramètres à adsressof.

    Quelqu'un connaît-il un moyen de passer des paramètres à mon thread d'une manière ou d'une autre?

    Merci d'avance
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 92
    Points : 114
    Points
    114
    Par défaut
    Effectivement tu ne peux pas passer de paramètres.
    Tu peux en revanche accéder à des variables dans la classe que tu peux affecter avant de lancer ton thread.

  3. #3
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Tiré de la future faq VB.NET

    Le délégué System.Threading.ThreadStart utilisé pour les fonctions de thread ne prend pas de paramètres.<br/>
    Passer des paramètres à un Thread revient donc à faire une classe contenant des variables ou acceuillir les paramètres.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    Imports System.Threading
     
    Public Class ThreadsForm
        Inherits System.Windows.Forms.Form
     
        ' ........
     
        'premier Thread de calcul
        Private _threadCalculs1 As Thread
        'Evenement pour signaler la fin des threads de Calcul
        Private _endThreadCalculsEvent As New ManualResetEvent(False)
     
        'Classe ThreadCalculs
        Private Class ThreadCalculs
     
            'form parente
            Private _frm As ThreadsForm
            'temporisation
            Private _tempo As Integer
     
            'Constructeur. frm et tempo sont les paramètres de notre Thread
            Public Sub New(ByVal frm As ThreadsForm, ByVal tempo As Integer)
                _frm = frm
                _tempo = tempo
            End Sub
     
            'Fonction du Thread
            Public Sub ThrFunc()
                Try
                    _frm.Calculs(_tempo)
                Catch ex As Exception
                    Debug.WriteLine(ex.ToString())
                End Try
            End Sub
     
        End Class
     
        'Calculs
        Private Sub Calculs(ByVal tempo As Integer)
     
            While Not _endThreadCalculsEvent.WaitOne(tempo, False)
                'Calculs fais ici .....
            End While
     
        End Sub
     
        'Démarrage du thread
        Private Sub StartThread()
     
            Dim myThreadObj As New ThreadCalculs(Me, 1000)
            _threadCalculs1 = New Thread(AddressOf myThreadObj.ThrFunc)
            _threadCalculs1.Name = "Thread1"
            _threadCalculs1.Start()
     
        End Sub

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    C'était bien ma prmière impression, passer par une classe.

    Merci beaucoup pour votre aide.
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

  5. #5
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    Citation Envoyé par WriteLN
    C'était bien ma prmière impression, passer par une classe.

    Merci beaucoup pour votre aide.
    Bouton Résolu svp [en bas à gauche]

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

Discussions similaires

  1. [VB.Net] Radiobutton avec paramètre utilisateur checked
    Par D4rkTiger dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/12/2009, 13h12
  2. DLL avec paramètres CString et String en .net
    Par basnifo dans le forum C++/CLI
    Réponses: 3
    Dernier message: 25/09/2008, 19h45
  3. [VB.net] Problème avec les paramètres d'un update
    Par dolyne.b dans le forum Accès aux données
    Réponses: 5
    Dernier message: 16/05/2007, 17h00
  4. [VB.net]Lancer un exe avec paramètre "\F"
    Par Golzinne dans le forum VB.NET
    Réponses: 7
    Dernier message: 01/01/2007, 17h14
  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