Bonjour je vous explique le contexte, j'ai une fenêtre dans lequel j'affiche un composant ActiveX qui met du temps à se mettre en place donc je l'ai mis dans un thread.

Ce composant activeX est 'AxMapPointControl' pour info c'est le composant fourni avec Microsoft MapPoint le logiciel de cartographie et qui me permet de visualiser une carte européenne dans mon projet .NET

Le soucis est qu'il met du temps pour s'afficher, j'ai donc mis cette fonction dans un thread avec passage de paramètre (en objet et que j’extrais dans ma fonction)

voici le code qui nous intéresse pour info :

dans ma class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 Dim th As New Thread(New ParameterizedThreadStart(AddressOf ShowMapPoint))
au chargement de ma fenêtre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 th.Start(coordonnen1 & "/" & coordonnen2 & "/" & adressemap)
et enfin ma fonction qui est exécuté par le thread :
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
Sub ShowMapPoint(ByVal texte As Object)
        AxMappointControl1.NewMap(MapPoint.GeoMapRegion.geoMapEurope)
 
        Dim recuperer As String = DirectCast(texte, String)
        Dim tab_parametre(2) As String
        tab_parametre = recuperer.Split("/"c)
        Dim co1 As Double = CDbl(tab_parametre(0))
        Dim co2 As Double = CDbl(tab_parametre(1))
        Dim adr As String = tab_parametre(2)
 
        Dim oMap As MapPoint.Map
        Dim oLoc As MapPoint.Location
        Dim oPush As MapPoint.Pushpin
 
        oMap = AxMappointControl1.ActiveMap
        oMap.Application.Units = MapPoint.GeoUnits.geoKm
 
        oLoc = oMap.GetLocation(co1, co2, 2)
        oLoc.GoTo()
 
        oPush = oMap.AddPushpin(oLoc, "Lieu de l'intervention")
        oPush.Symbol = 9
        oPush.Select()
        oPush.Highlight = True
        oPush.Note = adr
        oPush.BalloonState = MapPoint.GeoBalloonState.geoDisplayBalloon
 
    End Sub
Tous fonctionne mais le soucis est que lorsque la fenêtre s'ouvre, est bien c'est comme si je n'avais pas de thread, l'application charge pendant 10 bonnes secondes, avant d'avoir ma carte dans mon composant ActiveX, sans que je puisse faire autre chose, l'appli est figé !

aurais je oublié quelque chose ? pourtant je passe bien dans le thread vu que ma cartographie s'affiche !!!
je ne comprend pas