问题描述
我现在做了个带地图的窗体,点击窗体时地图加载较慢就导致这个窗体等地图加载完才显示出来,publicpartialclassWaybillDispatch:DockContent{privateGMapOverlaymarkersOverlay=newGMapOverlay("markers");//放置marker的图层publicWaybillDispatch(){InitializeComponent();try{System.Net.IPHostEntryer=System.Net.Dns.GetHostEntry("ditu.google.cn");}catch{mapControl.Manager.Mode=AccessMode.CacheOnly;MessageBox.Show("Nointernetconnectionavaible,goingtoCacheOnlymode.","GMap.NETDemo",MessageBoxButtons.OK,MessageBoxIcon.Warning);}mapControl.CacheLocation=Environment.CurrentDirectory+"\GMapCache\";//缓存位置mapControl.MapProvider=GMapProviders.GoogleChinaMap;//googlechina地图mapControl.MinZoom=2;//最小比例mapControl.MaxZoom=24;//最大比例mapControl.Zoom=10;//当前比例mapControl.ShowCenter=false;//不显示中心十字点mapControl.DragButton=System.Windows.Forms.MouseButtons.Left;//左键拖拽地图mapControl.Position=newPointLatLng(32.064,118.704);//地图中心位置:南京mapControl.Overlays.Add(markersOverlay);mapControl.MouseClick+=newMouseEventHandler(mapControl_MouseClick);}}
,这个可以用多线程进行处理么?想要的效果是窗体能够正常打开,地图让它自己慢慢加载,窗体不是假死状态。请问应该怎么处理呢?
解决方案
解决方案二:
问题是你必须修改mapControl通信的部分,加载地图的代码改为多线程如果这个控件不是你自己做的,那没什么办法.
解决方案三:
可以做个loading界面,地图加载完成后再显示主窗口