移动背景

时间:2014-04-30 20:28:37

标签: 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帧。

1 个答案:

答案 0 :(得分:0)

使用Sleep()功能将一些CPU使用时间回馈给Windows。

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

休眠间隔过后,线程就可以运行了。如果指定0毫秒,则线程将放弃其时间片的剩余部分但仍保持准备状态。请注意,不保证立即运行就绪线程。因此,线程可能在睡眠间隔过去一段时间后才会运行。

#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