Bonjour,

j'ai une form principale dans laquelle je voudrais lancer 1 à N form dans des threads séparés tout en gardant le controle, dans le sens ou je surveille les threads depuis la forme qui les lance.
je n'utilise pas de MDI. mais bien des délégués/multithreading/invoke et tuti quanti mais je n'arrive pas à les lancer correctement...


code depuis lequel je lance le thread pour lancer une FORM

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
   Dim t As Thread
 
        t = New Thread(AddressOf InvokeForm)
        t.Name = Me.computerName 
        t.Start()
voici un bout de code des délégués etc...

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
 
 
 
  Public Delegate Sub newForm()
 
    Private newFormProcess As newForm = AddressOf LaunchForm
 
    Private Sub InvokeForm()
        Try
            newFormProcess.Invoke()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
 
    Private Sub LaunchForm()
 
        If Me.InvokeRequired Then
 
            Me.Invoke(Me.newFormProcess)
 
        Else
 
            Dim frm As New MainReader
 
            frm.setComputerName = Me.txtBxComputerName.Text.Trim
 
            frm.setSelectedQueue = Me.TreeView.SelectedNode.Text
 
            Application.Run(frm)
            'frm.ShowDialog()
 
        End If
    End Sub
j'ai donc ce message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Starting a second message loop on a single thread is not a valid operation.  Use Form.showDialog instead
j'essaye alors le form.showdialog mais je perds le contrôle de la form qui lance les forms...

merci de bien vouloir m'aider.

bien à vous