这是为什么呢, 程序失去焦点会变的非常慢,应该怎样处理呢

niubidabianmeimeiaaa 2015-09-03 03:51:25
VC 写了个 控制台程序,控制台程序不断更新数据 并显示, 一切都很正常。 同时打开一个游戏, 两个程序窗口同时在 屏幕上,游戏获得焦点 ,控制台程序失去焦点 控制台程序就会十分慢,卡。 游戏失去焦点 运行还是非常流畅,这是怎么回事啊, CPU使用率100, 如果控制台程序一获得焦点 又会非常流畅。就是失去焦点 就不行了, 就是打开这个游戏的情况下。
应该不是机器配置的问题吧。 是不是可以控制进程优先
控制台程序是单线程的,一旦创建了从 线程 情况更是如此,但是控制台一获得焦点 就又正常了,这是为什么呢,难道是游戏 抢占CPU 吗,应该怎样 做呢
...全文
1950 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
信阳毛尖 2015-09-11
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
[quote=引用 5 楼 lsq19871207 的回复:] 你的线程中是不是有类似于while(1)的循环?
而且循环中既没阻塞函数,也没Sleep(100)[/quote] 我琢磨就是的,sleep(10)效果就很明显了
赵4老师 2015-09-11
  • 打赏
  • 举报
回复
引用 5 楼 lsq19871207 的回复:
你的线程中是不是有类似于while(1)的循环?
而且循环中既没阻塞函数,也没Sleep(100)
信阳毛尖 2015-09-11
  • 打赏
  • 举报
回复
你的线程中是不是有类似于while(1)的循环?
  • 打赏
  • 举报
回复
看了下,游戏登陆时 吃CPU 可到 50左右, 我的小小的控制台 程序 也吃到CPU 50左右, 把CreateThread ()删除了 就降低到几乎0, 原来是创建线程的原因,但是创建一个线程就这么慢吗,这个线程也是必须创建的,应该如何解决呢
kenshu 2015-09-03
  • 打赏
  • 举报
回复
引用 楼主 niubidabianmeimeiaaa 的回复:
VC 写了个 控制台程序,控制台程序不断更新数据 并显示, 一切都很正常。 同时打开一个游戏, 两个程序窗口同时在 屏幕上,游戏获得焦点 ,控制台程序失去焦点 控制台程序就会十分慢,卡。 游戏失去焦点 运行还是非常流畅,这是怎么回事啊, CPU使用率100, 如果控制台程序一获得焦点 又会非常流畅。就是失去焦点 就不行了, 就是打开这个游戏的情况下。 应该不是机器配置的问题吧。 是不是可以控制进程优先 控制台程序是单线程的,一旦创建了从 线程 情况更是如此,但是控制台一获得焦点 就又正常了,这是为什么呢,难道是游戏 抢占CPU 吗,应该怎样 做呢
100%,你看一下任务管理器中,是你的程序吃CPU,还是游戏吃CPU。 看你的描述,好像是游戏获得焦点时抢了CPU. 还有,你在你任务管理器中,右击你的EXE,设置优先级,看看是否会有变化。
笨笨仔 2015-09-03
  • 打赏
  • 举报
回复
你的程序中是否使用了太多的大循环,或使用循环来作延时之用?
schlafenhamster 2015-09-03
  • 打赏
  • 举报
回复
有焦点的程序, 优先级 会 被 提高。即运行机会 增加

15,465

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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