MapPoint 2009负载性能

时间:2008-09-12 19:42:26

标签: c# winforms performance com mappoint

我在使用C#将MS MapPoint 2009集成到我的WinForms .Net 2.0应用程序时遇到了一些问题。我已经将ActiveX MapPoint控件添加到表单上,并且没有问题让它显示地图和位置;我担心的是创建地图后加载地图所需的时间。

我的开发机器上的测试显示平均加载时间在3到5秒之间,在此期间应用程序完全锁定。虽然这不是完全不可接受的,但是失去对应用程序的控制是非常长的时间。此外,由于GUI线程被锁定,我无法显示加载对话框或掩盖加载时间的东西。

挂起的行是:(其中axMappointControl1是MapPoint控件)

axMappointControl1.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica);

我已尝试在另一个线程上执行NewMap方法,但GUI线程仍然最终被阻止。

我的问题是:

  • 加载MapPoint后如何加快速度?
  • 有没有办法加载MapPoint以便它不会阻止GUI线程?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

根据mapforums.com上的these threads,ActiveX启动的缓慢是众所周知且不可避免的(尽管帮助GUI响应的线程问题仍然存在。

建议的一件事是放弃ActiveX版本而不是MapPoint.Application对象。

希望有所帮助。

答案 1 :(得分:1)

是的,应用程序版本在它自己的线程上运行 - 所以这应该是一个更快的选择 - 在启动时更容易做自己的东西。但是,MapPoint 2010在用户启动时往往需要几秒钟才能启动。

我会创建一个临时的GUI线程,并在启动时使用它来显示启动画面和/或执行您需要执行的任何线程安全初始化。

对MapPoint实例(或ActiveX控件)的所有调用必须来自创建MapPoint控件或应用程序对象的同一线程。