[.net2] Multithreading quand tu nous tien !

Résolu
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 - 14 mars 2006 à 14:54
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 - 14 mars 2006 à 23:28
Bonjour a tous.
j'ai un petit prblm avec une appli que je veut faire fonctionner en multithreading.
j'ai fais ce petit code (que j'ai reduit au strict necessaire pour la comprehension):

Public Class MaClass
Public Event Evenement(ByVal info As Boolean)

Public Sub Mafonction()
RaiseEvent Evenement(False)
End Sub
End Class

Private Sub Commencer
Dim ThreadAllocine As New Threading.Thread(AddressOf Module_Allocine.recherche_film)
ThreadAllocine.Start()
End Sub

Private Sub mafonction2(ByVal info As Boolean) Handles MaClass.Evenement
MsgBox(info)
label1.text = info
End Sub

Voila, j'explique un peu mon envie: j'ai une classe qui realise MaFonction, celle est est bien lancé sur un thread different.
Les deux Sub c(ommencer, et mafonction2) sont eux declaré sur le thread principal.
Normalement le thread crée doit lancer un evenement avec une information (le boolean) et cette evenement doit lancer mafonction2 grace au Handles. Ca fonctionne, mafonction2 se lance et affiche la msgbox, je me disait c bon c gagné ! et non, quand il veut changer le .text du label1 (controle se trouvant dans le thread principal) le debugger me dit que je peut pas changer les infos d'un autre thread.
je pense donc que mafonction2 etant ecrite sur la class principale (le thread principal) est quand meme traité par le thread secondaire.
voila je demande votre aide afin de savoir comment je peut faire pour arranger ce prblm. d'avance, merci !
<hr size="2" width="100%">
L U C Y I3 E R @ D

6 réponses

troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
14 mars 2006 à 19:26
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
14 mars 2006 à 15:01
Bonjour

Les threads ont leurs pile (des appels des fonction) perso, donc une classe n'est pas liée à 1 thread.
Quand ton thread appel une fonction, la fonction est lancée dans le thread appelant.
J'ai déjà vu que l'on peut mettre les sub dans une file d'attente (pour leur traitement par le thread principal), mais je ne pourrais pas t'en dire plus.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
14 mars 2006 à 15:29
donc en fait faire un "pools" de thread, mais sur le thread principal?
pas con, je vais essayer de cresuer ca mais bon c'est pas gagné je pense.

<hr size="2" width="100%">
L U C Y I3 E R @ D
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
14 mars 2006 à 18:32
http://glarde.developpez.com/dotnet/bgworker/
et sur le site de microsoft il y a une Webcasts sur le BackgroundWorker
de monsieur Eric Vernié :) mais je sais plus ou il faut le rechercher !

http://www.troxsa.info/
Code Vb.net
0

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

Posez votre question
Lucyberad Messages postés 414 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 26 juillet 2007 3
14 mars 2006 à 20:27
oula mon crane a besoin d'un aspegic, mais bon c vraiment tres complet et intuitif !
de plus, il y as les 3 soltions multithredqu'on parlait.
moi => thread
Nhenry => les delegates (pools de thread sur le thread principal dont je parlait)
TroXsa => le BG worker
y'as plus qu'a choisir celui qu'on prefere et qui est le plus simple

MERCI TroXsa, c un lien en OR !

<hr size="2" width="100%">
L U C Y I3 E R @ D
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
14 mars 2006 à 23:28
J'en ai plein d'autre des commes ça :) ravis de d'avoir rendu service !
@+

http://www.troxsa.info/
Code Vb.net
0
Rejoignez-nous