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 :
Dim th As New Thread(New ParameterizedThreadStart(AddressOf ShowMapPoint))
au chargement de ma fenêtre :
th.Start(coordonnen1 & "/" & coordonnen2 & "/" & adressemap)
et enfin ma fonction qui est exécuté par le thread :
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
Partager