[VB.NET]Creer une thread

Signaler
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
Bonjour,

je cherche a créer une seconde thread facilement dans mon programme, j'ai fait dans mon projet une class, s'appelant Donnees.vb, dans celle ci il y a une methode ChargerDonnees,

je veux tout simplement creer un thread qui executera ce qu'il ya dans ChargerDonnees
A voir également:

7 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
Tu obtiens une erreur car tu essais d'accéder à un objet (CheckBoucle) qui a été créer dans un autre thread que le thread appelant (t).

'Déclare et place un délégué en haut dans ta classe

Delegate
Sub
DelChargerDonnees()



'Création et exécution de ton thread

Dim t
As

New
Threading.Thread(
AddressOf
ExecChargerDonnees)
t.Start()

'Ta méthode délégué
Sub ExecChargerDonnees()

If MainForm.InvokeRequired
Then

Dim del
As

New
DelChargerDonnees(
AddressOf
ChargerDonnees)
MainForm.Invoke(del)

End
If

End
Sub

'Ta méthode ChargerDonnees
Sub ChargerDonnees()

'........

MainForm.CheckBoucle.Start()

'........

End
Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 150 internautes nous ont dit merci ce mois-ci

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
Salut,

Création et exécution de ta méthode dans un thread
Dim tThread
As

New
Threading.Thread(
AddressOf
ChargerDonnees)
tThread.Start()

Ta méthode ChargerDonnees
Sub ChargerDonnees()

'......

End
Sub
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

ca marche quand je le met dans mon form1.vb le sub ChargerDonnees() , mais si je le met dans ma class ca ne veux pas ca met une erreur
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
Il serait bien de donner l'erreur ?
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

euh oups désolé :)

Error 1 Overload resolution failed because no accessible 'New' can be called with these arguments:
'Public Sub New(start As System.Threading.ParameterizedThreadStart)': Method 'Public Sub ChargerDonnees()' does not have the same signature as delegate 'Delegate Sub ParameterizedThreadStart(obj As Object)'.
'Public Sub New(start As System.Threading.ThreadStart)': Reference to a non-shared member requires an object reference. C:\Documents and Settings\Shadow\Mes documents\Visual Studio 2005\Projects\ControlClipBoard\ControlClipBoard\Form1.vb 21 13 ControlClipBoard
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
20
Tu exécutes le thread dans ton constructeur ?
Quel sont les parmètres de ton constructeur ? de ChargerDonnees ?
Peux tu donner une partie de ton constructeur et de ChargerDonnees ?
Messages postés
707
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

bein en gros c'est dans mon form1.vb, j'ai mis en haut Imports ControlClipBoard.Donnees, j'ai fait une class Donnees, et j'ai mis dans mon form1_load


Dim myThread
As
New Thread(
AddressOf ChargerDonnees)
myThread.Start()

et dans ma class


Public Class Donnees



Sub ChargerDonnees()


MainForm.CheckBoucle.Start()



End
Sub


End Class




CheckBoucle etant un timer