[VB.NET]Creer une thread

shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013
- 11 mars 2006 à 20:13
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
- 12 mars 2006 à 13:55
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

7 réponses

cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
12 mars 2006 à 13:55
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
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
11 mars 2006 à 20:55
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
0
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

12 mars 2006 à 08:36
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
0
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
12 mars 2006 à 11:28
Il serait bien de donner l'erreur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

12 mars 2006 à 11:34
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
0
cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
12 mars 2006 à 11:39
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 ?
0
shadow1779
Messages postés
706
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2013

12 mars 2006 à 12:00
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
0