bon, voila, je fais un petit test.
j’essaie de gerer un treeview avec 2 thread different.
un qui met les nodes de depart puis ne fait plus rien et un qui est appelle lorsqu’un node est selectionne et tente de remplir ce node avec 1 autre.
c’est idiot, ca ne sert strictement a rien mais c’est pour tester.
Bien sur comme je suis nul, je n’arrive pas a faire ajouter a mon second thread des nodes au treeview du premier thread . J’ai essaye d’utiliser un delegate, je crois qu’il faut quelque part mais je l’utilise certainement mal.
voila donc :
la classe form1 (sans le code genere par vs parce que bon …)
[code]Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Code généré par le Concepteur Windows Form "
'ici il y avait du code pour initialiser form1 et treeview1 mais c’est sans importance
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
For i = 0 To 10
Dim node As New TreeNode(i.ToString)
TreeView1.Nodes.Add(node)
Next
End Sub
Public Delegate Function addtotreeview(ByVal text As String) As TreeNode
Private Sub TreeView1_BeforeSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeSelect
Dim d As New addtotreeview(AddressOf e.Node.Nodes.Add)
Dim a As New sthread(d)
Dim t As New System.Threading.Thread(AddressOf a.doit)
t.Start()
End Sub
End Class[/code]
et ensuite la petite classe de mon thread
[code]Public Class sthread
Private deleg As Form1.addtotreeview
Public Sub New(ByVal deleg As Form1.addtotreeview)
Me.deleg = deleg
End Sub
Public Sub doit()
deleg.Invoke(« useless node »)
End Sub
End Class[/code]
et pour finir, la superbe erreur:
Une exception non gérée du type ‹ System.InvalidOperationException › s’est produite dans system.windows.forms.dll
Informations supplémentaires : L’action effectuée sur ce contrôle est appelée à partir d’un thread incorrect. Vous devez marshaler le thread correct en utilisant Control.Invoke ou Control.BeginInvoke pour effectuer cette action.
HELP, toute personne illuminee (GloP ou autre) est la bienvenue :P"