以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  CPU占用比较高如何改进  (http://foxtable.com/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%;到底是什么原因呢?

图片点击可在新窗口打开查看此主题相关图片如下:360截图20161023095001334.jpg
图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间: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