我在将MS MapPoint 2009集成到WinForms .Net 2.0的C#应用程序中遇到了一些问题。我已经将ActiveX MapPoint控件添加到表单中,让它显示地图和位置没有问题;我关心的是创建地图后加载地图所需的时间。
在我的开发机器上的测试显示,平均加载时间在3到5秒之间,在此期间,应用程序被完全锁定。虽然这并不是完全不能接受的,但失去对应用程序的控制是非常长的一段时间。另外,由于GUI线程被锁定,我无法显示加载对话框或什么东西来掩盖加载时间。
挂起的行是:(其中axMappointControl1是MapPoint控件)
axMappointControl1.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica);我尝试在另一个线程上执行NewMap方法,但是GUI线程最终仍然被阻塞。
我的问题是:
任何帮助都是非常感谢的。
发布于 2008-09-18 20:02:26
根据这些 线程 at mapforums.com的说法,ActiveX启动的缓慢是众所周知的,也是不可避免的(尽管线程化以帮助GUI响应的问题仍然存在。)
有一件事建议放弃ActiveX版本,转而支持MapPoint.Application对象。
希望这能有所帮助。
发布于 2011-01-04 14:54:12
是的,应用程序版本运行在自己的线程上-所以这应该是一个更快的选择-更容易做你自己的东西,而它正在启动。然而,当用户启动MapPoint 2010时,通常需要几秒钟的时间才能启动。
我将创建一个临时GUI线程,并使用它在启动和/或执行任何需要执行的线程安全初始化时显示一个启动屏幕。
对MapPoint实例(或ActiveX控件)的所有调用必须来自创建MapPoint控件或应用程序对象的同一个线程。
https://stackoverflow.com/questions/59816
复制相似问题