c++ - 移动背景

标签 c++ cpu-usage

所以我想为我的 PC 设置移动背景,所以我尝试了我编写的 C++ 代码。我使用的代码不允许我使用 gif,而是制作动画层,程序将继续更改背景图像以创建移动背景。问题是该程序使用过多的 CPU 使用率并导致图像滞后。所以我想知道是否有任何方法可以使用 C++ 解决这个问题。我知道我可以使用其他一些程序,但我想学习一点 C++,尤其是与操作系统交互的程序。

SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (PVOID)"image01.jpg", SPIF_UPDATEINIFILE );
SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (PVOID)"image02.jpg", SPIF_UPDATEINIFILE );

我还有大约 23 帧。

最佳答案

使用 Sleep() 函数将一些 CPU 使用时间还给 Windows。

Sleep() 函数导致线程放弃其时间片的剩余部分,并在基于 dwMilliseconds 值的时间间隔内变得不可运行。系统时钟以恒定速率“滴答”。如果 dwMilliseconds 小于系统时钟的分辨率,线程可能会休眠少于指定的时间长度。

在 sleep 间隔过去后,线程准备运行。如果您指定 0 毫秒,线程将放弃其剩余的时间片但保持就绪状态。请注意,不保证就绪线程会立即运行。因此,线程可能要等到 sleep 间隔结束后的某个时间才能运行。

#include <Windows.h>

int main(){

  Sleep(100);  //100 Milliseconds or 0.1 seconds
  return 0;
}

https://msdn.microsoft.com/en-us/library/windows/desktop/ms686298%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

关于c++ - 移动背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397457/

相关文章:

c++ - 为什么模板模板参数不允许在参数列表后出现 'typename'

c++ - 我们怎样才能跳过 GDB 中的函数调用?

c++ - 如何在 Windows 上限制进程的 CPU 使用率?

asp.net - 分析 ASP.NET Web 应用程序的 CPU 使用率 - 但不是数据库!

c++ - 索引全局 "self"时出错?

C++货币输出

c++ - 阿姆斯特朗号码的代码不起作用

cpu-usage - CPU使用率是什么意思?

r - macOS 和 CentOS 上的并行 Caret 与 doSNOW 集群

c - 程序中如何获取某个进程的CPU使用率?