以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- CPU占用比较高如何改进 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91942) |
-- 作者:happyft -- 发布时间:2016/10/22 15:00:00 -- CPU占用比较高如何改进 客户公司旧点的电脑打开项目后,还没有加载其他表的数据,任务管理器那里查看cpu占用达50%左右,再打开其他程序如excel运行变得很慢,有没有什么办法改进? 项目打开时只加载六个左右基础表,数据都在200行以内;其他表都是在打开窗体时动态加载的SQLtable,谢谢!
|
-- 作者:有点蓝 -- 发布时间:2016/10/22 15:10:00 -- 看看是否这个原因:http://www.foxtable.com/webhelp/scr/2730.htm |
-- 作者:HappyFt -- 发布时间:2016/10/22 16:54:00 -- 试过了,不是那个原因。我打开foxtable中的Casestudy下面的例子,查看任务管理器会显示cpu占用3%左右,但不操作时把上就变成0了, 而我的项目打开后如果是较旧的电脑,cpu占用是50%,较好一点的电脑cpu占用是23%,这个值一直在23%左右变动。为什么cpu占用不能释放,是什么原因才会这样?
|
-- 作者:有点蓝 -- 发布时间:2016/10/22 17:17:00 -- 是不是有计时器的代码在不断执行。关闭计时器,注释项目和菜单SystemIdle事件看看 |
-- 作者:HappyFt -- 发布时间:2016/10/22 17:30:00 -- 还有个问题,我用开发版打开原项目就没有这个问题,只有发布后的项目运行才会这样,是不是发布的项目不一样 |
-- 作者:有点蓝 -- 发布时间:2016/10/22 17:39:00 -- 应该一样的,按4楼检查一下 |
-- 作者:HappyFt -- 发布时间:2016/10/23 9:51:00 -- 都把里面的代码全部注释了,还是一样,同样的项目没发布前如果登录时用开发者进入就没有问题,用其他用户登录cpu占用10%左右,如果是发布后运行则cpu占用达到20%,电脑配置差点的会到50%;到底是什么原因呢? |
-- 作者:狐狸爸爸 -- 发布时间:2016/10/23 16:43:00 -- 没遇到过这种问题,应该还有其他代码没有屏蔽 |
-- 作者:HappyFt -- 发布时间:2016/10/23 16:48:00 -- 查了一下项目发现是如下两段代码引起的, 全局代码中有下面一段 Public Sub beforeOpenProject() Do Until ShowAppWindow("网络类型",
1) = True application.DoEvents Loop End Sub beforeopenproject中有如下代码 \'---第一次打开项目时先显示网络类型对话框 Dim t1 As New System.Threading.Thread(AddressOf
beforeOpenProject) t1.IsBackground = True t1.Start() 上面两项代码的作用就是用户第一次打开项目时必须先弹出一个InputValue对话框显示在最前面让用户自己选择一个值0或1才能继续运行项目, 在没有上面的代码前,系统默认的正在打开项目那个框会遮住这个InputValue的对话框用户无法选择到值结果就一直停留在正在打开那里了。 请教要怎么样在打开项目后停止上面这个进程,就不会出现cpu暂用很高的问题了。 谢谢! |
-- 作者:有点蓝 -- 发布时间:2016/10/24 8:26:00 -- 增加一个全局变量, public _stopThread as boolean Public Sub beforeOpenProject() Do Until ShowAppWindow("网络类型", 1) = True if _stopThread then exit do application.DoEvents Loop End Sub afteropenproject事件 _stopThread = true
|