Bonjour à tous !

Avant, j'avais un activeX EXE nommé "Readers". C'était une fenêtre graphique qui permettait de gérer des lecteurs.

Pour l'ajouter dans un autre projet, il suffisait de l'ajouter en référence et de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Dim connector As New Readers.Connector  (Connector était une classe publique)
Dim myReader AS Readers.reader = connector.getInstanceOfReader()
A ce moment là, j'avais accès à toutes les infos du reader. L'activeX était dans un autre thread donc pendant que le projet fonctionnait, la fenêtre était accessible.

J'ai refait ce programme en .NET. J'ai tenté de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Dim Connector As New IDReader.Connector
Dim t As New System.Threading.Thread(AddressOf Connector.ShowProgress)
t.IsBackground = True
t.SetApartmentState(Threading.ApartmentState.STA)
t.Start()
Reader = Connector.getInstanceOfReader
Avec dans connector du projet "Readers":
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
 
Public Sub New()
         ReaderInst = New ReaderAPI()
End Sub
 
 
Sub ShowProgress()
        MyMainWindow = New MainWindow()
        MyMainWindow.Show()
End Sub
 
 
Public ReadOnly Property getInstanceOfReader() As ReaderAPI
        Get
            Return ReaderInst
        End Get
End Property
Quand le programme s'éxecute, pas de problème, la fenêtre réagit bien. Mais, le projet principal est en mode "debug" et si j'arrive sur un breakpoint dans mon code, la fenêtre se freeze.

Je ne sais pas comment faire. Quelqu'un a une idée?
Est-il possible de le passer en Processus à la place et d'intéragir avec?

Merci,
Guillaume