Foxtable(狐表)用户栏目专家坐堂 → CPU占用比较高如何改进


  共有2429人关注过本帖树形打印复制链接

主题:CPU占用比较高如何改进

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
CPU占用比较高如何改进  发帖心情 Post By:2016/10/22 15:00:00 [只看该作者]

客户公司旧点的电脑打开项目后,还没有加载其他表的数据,任务管理器那里查看cpu占用达50%左右,再打开其他程序如excel运行变得很慢,有没有什么办法改进?
项目打开时只加载六个左右基础表,数据都在200行以内;其他表都是在打开窗体时动态加载的SQLtable,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/22 15:10:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/10/22 16:54:00 [只看该作者]

试过了,不是那个原因。我打开foxtable中的Casestudy下面的例子,查看任务管理器会显示cpu占用3%左右,但不操作时把上就变成0了,
而我的项目打开后如果是较旧的电脑,cpu占用是50%,较好一点的电脑cpu占用是23%,这个值一直在23%左右变动。为什么cpu占用不能释放,是什么原因才会这样?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/22 17:17:00 [只看该作者]

是不是有计时器的代码在不断执行。关闭计时器,注释项目和菜单SystemIdle事件看看

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/10/22 17:30:00 [只看该作者]

还有个问题,我用开发版打开原项目就没有这个问题,只有发布后的项目运行才会这样,是不是发布的项目不一样

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/22 17:39:00 [只看该作者]

应该一样的,按4楼检查一下

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2016/10/23 9:51:00 [只看该作者]

都把里面的代码全部注释了,还是一样,同样的项目没发布前如果登录时用开发者进入就没有问题,用其他用户登录cpu占用10%左右,如果是发布后运行则cpu占用达到20%,电脑配置差点的会到50%;到底是什么原因呢?

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/23 16:43:00 [只看该作者]

没遇到过这种问题,应该还有其他代码没有屏蔽


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By: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暂用很高的问题了。

谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部