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

问题描述

最近在做地图,使用的是C#Winform调用开源地图控件Gmap。现在有一个问题,Gmap控件在电脑处于联网状态下会加载很久(20秒左右,也是加载本地缓存),在这个阶段整个软件会一直处于假死状态,我将整个任务放进BackgroundWorker中也不行,而在拔掉电脑网线过后,加载缓存只需要2秒左右就出来了,请问如何处理才能让我写的窗体立刻就能加载出来?退一步,如何让软件不假死在那里?恳请做过Gmap的前辈指点一二!谢谢!

解决方案

解决方案二:
Gmap没有用过,不过比较耗时的异步操作都需要放到线程中去做,防止主线程被阻塞,出现无响应
解决方案三:
是谷歌地图吗?大陆访问不了谷歌,所以慢
解决方案四:
引用楼主xulong20006的回复:

在这个阶段整个软件会一直处于假死状态,我将整个任务放进BackgroundWorker中也不行,

放进BackgroundWorker为什么就行,你想过吗?能说你的理由吗?胡乱把代码放进BackgroundWorker明明只会让过程更慢啊!谁跟你说过凡是放入BackgroundWorker的代码就变快了?有的人说“1+2等于几我自己不算,我请别人给我算”,这能更快吗?这只会更慢的。
解决方案五:
你要想解决“响应、流畅”问题,那么你必须稍微深入一点点,你必须主动研究并重构更深入一点你自己的那部分代码。这部分代码,谁知道你是怎么写的呢?只抓住一点BackgroundWorker的概念皮毛没用。
解决方案六:
引用1楼xian_wwq的回复:

Gmap没有用过,不过比较耗时的异步操作都需要放到线程中去做,防止主线程被阻塞,出现无响应

我就是这样做的
解决方案七:
引用2楼hchloveit的回复:

是谷歌地图吗?大陆访问不了谷歌,所以慢

谷歌已经妥协了,国内已经可以访问谷歌地图了ditu.google.cn/
解决方案八:
引用3楼sp1234的回复:

Quote: 引用楼主xulong20006的回复:
在这个阶段整个软件会一直处于假死状态,我将整个任务放进BackgroundWorker中也不行,

放进BackgroundWorker为什么就行,你想过吗?能说你的理由吗?胡乱把代码放进BackgroundWorker明明只会让过程更慢啊!谁跟你说过凡是放入BackgroundWorker的代码就变快了?有的人说“1+2等于几我自己不算,我请别人给我算”,这能更快吗?这只会更慢的。

我的理解是:现在CPU都是多核多线程,我将费时的任务放在后台线程去处理,不让其阻塞主线程,我这样的理解错了吗?我是由于没有别的更好的方法才将其放在BackgroundWorker中试一下,可是还会卡。这是一个开源项目,国内外很多人都在用,应该有什么好的方法去解决这个问题,只是我找了很多资料没找到,才想到CSDN上向用过这个开源库的前辈请教。请前辈不吝赐教!

时间: 2024-09-17 12:36:39

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

浏览器打开网页很慢如何提高ie浏览器的网页加载打开速度

  浏览器打开网页很慢如何提高ie浏览器的网页加载打开速度          一.ie浏览器设置参数 1.在xp系统下载的IE浏览器窗口的菜单栏单击"工具"-"Internet选项"命令,然后在打开的"Internet选项"对话框中切换到"高级"选项卡. 2.拖动右边的滚动条,然后在"设置"列表中的"多媒体"栏取消对播放动画.声音.视频和联机媒体内容选项的勾选,如图所示: 3.单击&qu

visual c++- cocos2d发布后用vs打开报错,说未能正确加载 Visual C++ Package包

问题描述 cocos2d发布后用vs打开报错,说未能正确加载 Visual C++ Package包 此问题如何解决?它有提示说"此问题可能是由配置更改或安装另一个拓展导致的. 解决方案 https://item.taobao.com/item.htm?spm=a230r.1.14.133.UUvPTY&id=38575597057&ns=1&abbucket=17#detail

ajax局部刷新后,如何让局部中的百度分享重新加载

我这个人不怎么喜欢说太多话,看几个图你们就懂了 Ajax前 Ajax之后 原因分析 解决方法 收工 百度分享是集成了众多主流第三方网站分享和收藏按钮的工具. 通过百度分享轻松将主流第三方网站的分享按钮全部集成到自己网站上,满足网站用户的分享需求,并通过在第三方网站的分享内容和链接导入更多社会化流量,为网站带来更多的流量. 百度分享是集成了众多主流第三方网站分享和收藏按钮的工具. 通过百度分享轻松将主流第三方网站的分享按钮全部集成到自己网站上,满足网站用户的分享需求,并通过在第三方网站的分享内容和

Android Jni调用so库,加载库失败分析

现有一个项目,通过JNI接口调用底层库,例如:lib***.so 如下所示,总是加载不成功.调试发现,每次加载so库,会跳到catch异常处理部分,然后打印异常log信息. static{ try{ System.load("/data/data/com.***/lib/lib***.so"); } catch(UnsatisfiedLinkError ulink){ Log.i("HVnative====","Can not load library&q

javascript-点击超链接后新页面没加载js

问题描述 点击超链接后新页面没加载js 问题是这样:两个页面 A B,A页面有个超链接,点击A页面的超链接后跳转到B页面,但是B页面没加载JS,刷新B页面之后才加载JS,怎样点击超链接之后自动刷新B页面或者自动加载JS,或者我这个B页面无法加载JS是什么原因造成的? 解决方案 a链接跳转到另外一个页面或者在本页面显示都是重新加载的,你的B页面渲染后js不显示要麽是你的js路径没有对,这个好检查,另一个就是你的写法是调用jquery库的,这时候你就得检查了,先加载jquery库文件,然后在加载你自

PHP调用session_start后页面始终加载的问题研究

一个PHP页面的执行时间比较长(15秒左右),而只要这个页面没有执行完毕,其他的页面访问都是长时间加载状态,只有那个页面执行完毕了,剩下的页面才能打开. 这是什么情况呢,经过查看,两个页面都设计到了SESSION操作,示例代码如下: 页面一: 页面二:   访问页面一地时候同时访问页面二,你会发现页面二会一直保持加载状态直到页面一执行完毕. 问题的原因是什么呢? 答案是PHP的SESSION机制在作怪,PHP只会在页面代码执行完毕之后才会把SESSION数据写入到文件中,页面不执行完毕,对应的S

为什么U盘启动PE时加载镜像时间很久

  为什么U盘启动PE时加载镜像时间很久?电脑教程 PE镜像加载的时间取决于你的主板,有些主板上要七八分钟才能加载的镜像,在支持USB2.0启动的主板上也许只要几十秒

ANDROID动态加载 使用SO库时要注意的一些问题

基本信息 作者:kaedea 项目:android-dynamical-loading Android项目里的SO库 正好动态加载系列文章谈到了加载SO库的地方,我觉得这里可以顺便谈谈使用SO库时需要注意的一些问题.或许这些问题对于经常和SO库开发打交道的同学来说已经是老生长谈,但是既然要讨论一整个动态加载系列,我想还是有必要说说使用SO库时的一些问题. 在项目里使用SO库非常简单,在 加载SD卡中的SO库 中也有谈到,只需要把需要用到的SO库拷贝进 jniLibs(或者Eclipse项目里面的

Android常用的图片加载库

前言:图片加载涉及到图片的缓存.图片的处理.图片的显示等.四种常用的图片加载框架,分别是Fresco.ImageLoader. Picasso. Glide. Universal Image Loader:ImageLoader是比较老的框架,一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛. ImageLoader开源库存哪些特征: 1.多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 2.支持随意的配置ImageLoader,例如线