【问题标题】:MapPoint 2009 Load PerformanceMapPoint 2009 负载性能
【发布时间】:2010-09-08 18:11:09
【问题描述】:

我在使用 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 线程?

非常感谢任何帮助。

【问题讨论】:

    标签: c# winforms performance com mappoint


    【解决方案1】:

    根据 mapforums.com 上的thesethreads 的说法,ActiveX 启动缓慢是众所周知且不可避免的(尽管有助于提高 GUI 响应能力的线程问题仍然悬而未决。

    建议的一件事是放弃 ActiveX 版本,转而使用 MapPoint.Application 对象。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-06-06
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-23
        相关资源
        最近更新 更多