C#调用Gmap库后启动很慢,大概需要20秒,拔掉网线加载只需要2秒,如何优化速度?

Jack__9527 2016-03-30 10:46:06
最近在做地图,使用的是C# Winform 调用开源地图控件Gmap。现在有一个问题,Gmap控件在电脑处于联网状态下会加载很久(20秒左右,也是加载本地缓存),在这个阶段整个软件会一直处于假死状态,我将整个任务放进BackgroundWorker中也不行,而在拔掉电脑网线过后,加载缓存只需要2秒左右就出来了,请问如何处理才能让我写的窗体立刻就能加载出来?退一步,如何让软件不假死在那里?
恳请做过Gmap的前辈指点一二! 谢谢!
...全文
559 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
daozhen567 2019-01-22
  • 打赏
  • 举报
回复
在代码指定 地图前,修改GMapProvider.TimeoutMs,加载完成后修改 GMapProvider.TimeoutMs为5000(也就是5秒)。例如:

... ...
GMapProvider.TimeoutMs = 0;
this.gMapControl1.MapProvider = GMapProviders.GoogleChinaSatelliteMap;
... ...
GMapProvider.TimeoutMs = 5000; // 大于0小于5000的值会影响在线地图加载速度

即可
best丨Zp 2016-07-28
  • 打赏
  • 举报
回复
20S 在更新下载的缓存吗?拔了网线就2秒
airwmallen_c_s_d_n 2016-07-21
  • 打赏
  • 举报
回复
三楼的老哥,我觉得你喷的有点偏了。楼主想知道的还是如何避免启动速度慢的问题,断网之后启动速度提升极为明显,应该是gmap后台尝试链接服务器导致的,不是程序的问题。
Jack__9527 2016-04-10
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
[quote=引用 楼主 xulong20006 的回复:] 在这个阶段整个软件会一直处于假死状态,我将整个任务放进BackgroundWorker中也不行,
放进 BackgroundWorker 为什么就行,你想过吗?能说你的理由吗?胡乱把代码放进BackgroundWorker 明明只会让过程更慢啊!谁跟你说过凡是放入 BackgroundWorker 的代码就变快了? 有的人说“1+2等于几我自己不算,我请别人给我算”,这能更快吗?这只会更慢的。[/quote] 我的理解是:现在CPU都是多核多线程,我将费时的任务放在后台线程去处理,不让其阻塞主线程,我这样的理解错了吗? 我是由于没有别的更好的方法才将其放在BackgroundWorker中试一下,可是还会卡。 这是一个开源项目,国内外很多人都在用,应该有什么好的方法去解决这个问题,只是我找了很多资料没找到,才想到CSDN上向用过这个开源库的前辈请教。 请前辈不吝赐教!
Jack__9527 2016-04-10
  • 打赏
  • 举报
回复
引用 2 楼 hchloveit 的回复:
是谷歌地图吗?大陆访问不了谷歌,所以慢
谷歌已经妥协了,国内已经可以访问谷歌地图了 ditu.google.cn/
Jack__9527 2016-04-10
  • 打赏
  • 举报
回复
引用 1 楼 xian_wwq 的回复:
Gmap没有用过, 不过比较耗时的异步操作都需要放到线程中去做, 防止主线程被阻塞,出现无响应
我就是这样做的
  • 打赏
  • 举报
回复
你要想解决“响应、流畅”问题,那么你必须稍微深入一点点,你必须主动研究并重构更深入一点你自己的那部分代码。 这部分代码,谁知道你是怎么写的呢? 只抓住一点 BackgroundWorker 的概念皮毛没用。
  • 打赏
  • 举报
回复
引用 楼主 xulong20006 的回复:
在这个阶段整个软件会一直处于假死状态,我将整个任务放进BackgroundWorker中也不行,
放进 BackgroundWorker 为什么就行,你想过吗?能说你的理由吗?胡乱把代码放进BackgroundWorker 明明只会让过程更慢啊!谁跟你说过凡是放入 BackgroundWorker 的代码就变快了? 有的人说“1+2等于几我自己不算,我请别人给我算”,这能更快吗?这只会更慢的。
hchloveit 2016-04-08
  • 打赏
  • 举报
回复
是谷歌地图吗?大陆访问不了谷歌,所以慢
xian_wwq 2016-03-30
  • 打赏
  • 举报
回复
Gmap没有用过, 不过比较耗时的异步操作都需要放到线程中去做, 防止主线程被阻塞,出现无响应

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧