Pregunta

Tengo algunos problemas para integrar MS MapPoint 2009 en mi aplicación WinForms .Net 2.0 en C#.Agregué el control ActiveX MapPoint a un formulario y no tengo problemas para que muestre mapas y ubicaciones;Mi preocupación es el tiempo que lleva cargar un mapa una vez creado.

Las pruebas en mi máquina de desarrollo han demostrado que el tiempo medio de carga es de entre 3 y 5 segundos, durante los cuales la aplicación está totalmente bloqueada.Aunque esto no es del todo inaceptable, perder el control de la aplicación lleva mucho tiempo.Además, debido a que el hilo de la GUI está bloqueado, no puedo mostrar un cuadro de diálogo de carga o algo para enmascarar el tiempo de carga.

La línea que cuelga es esta:(donde axMappointControl1 es el control MapPoint)

axMappointControl1.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica);

Intenté ejecutar el método NewMap en otro hilo, pero el hilo de la GUI aún termina bloqueado.

Mis preguntas son:

  • ¿Qué puedo hacer para acelerar MapPoint cuando se carga?
  • ¿Hay alguna forma de cargar MapPoint para que no bloquee el hilo de la GUI?

Cualquier ayuda es muy apreciada.

¿Fue útil?

Solución

De acuerdo a estos hilos en mapforums.com la lentitud del inicio de ActiveX es bien conocida e inevitable (aunque la cuestión de los subprocesos para ayudar con la capacidad de respuesta de la GUI aún está abierta.

Una cosa que se sugirió fue abandonar la versión ActiveX en favor del objeto MapPoint.Application.

Espero que ayude.

Otros consejos

Sí, la versión de la aplicación se ejecuta en su propio subproceso, por lo que debería ser una alternativa más rápida y más fácil de hacer tus propias cosas mientras se inicia.Sin embargo, MapPoint 2010 tiende a tardar unos segundos en iniciarse cuando lo inicia un usuario.

Yo crearía un subproceso GUI temporal y lo usaría para mostrar una pantalla de presentación durante el inicio y/o realizar cualquier inicialización segura para subprocesos que necesite realizar.

Todas las llamadas a una instancia de MapPoint (o control ActiveX) deben provenir del mismo hilo que crea el control MapPoint o el objeto de aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top