如何在c++中创建一个无限循环?(Windows)
How to make an infinite loop in c++? (Windows)
我需要一个函数来每秒重复一次。两种我都试过了
for (;;) {}
和
while(true){}
但是当我运行编译后的程序时,函数只运行一次。
对不起,这是全功能
#define WINDOWS_LEAN_AND_MEAN
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
// do something after 10 minutes of user inactivity
static const unsigned int idle_milliseconds = 60*10*1000;
// wait at least an hour between two runs
static const unsigned int interval = 60*60*1000;
int main() {
LASTINPUTINFO last_input;
BOOL screensaver_active;
// main loop to check if user has been idle long enough
for (;;) {
if ( !GetLastInputInfo(&last_input)
|| !SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0,
&screensaver_active, 0))
{
std::cerr << "WinAPI failed!" << std::endl;
return EXIT_FAILURE;
}
if (last_input.dwTime < idle_milliseconds && !screensaver_active) {
// user hasn't been idle for long enough
// AND no screensaver is running
Sleep(1000);
continue;
}
// user has been idle at least 10 minutes
HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );
system("C:\Windows\software.exe");
// done. Wait before doing the next loop.
Sleep(interval);
}
}
此操作只运行一次,而不是继续检查。
while(true){
//Do something
}
应该工作,但通常你应该避免无限循环,而不是像一样
bool isRunning = true;
while( isRunning ){
//Do something
}
通过这种方式,您将能够在需要时终止循环。
for(;;)和while(1)这两个循环都用于无限循环。这就是你的程序的样子:
for (;;) // or while(1), doesn't matter
{
function();
sleep(1000);
}
如果这对你不起作用,你将不得不提供更多的代码,因为我看不出它不起作用的其他原因。
哦,我必须说sleep()函数在各种平台上的实现方式不同。您必须在工具箱中查找该值是以秒还是以毫秒为单位(如果sleep(1000)不起作用,请尝试sleep(1))。
您可以使用计时器,并将间隔设置为1秒,这将每秒触发一次,并执行您需要的操作。
相关文章:
- 为什么这个递归函数会创建一个无限循环?
- 如何找出为什么我的程序一直有一个无限循环?
- 为什么我有一个无限循环,我如何以不同的方式做到这一点
- WinUsb_WritePipe进入了一个无限循环
- 为什么我会得到一个无限循环(因子)?
- 为什么我总是得到一个无限循环
- 这是一个无限循环吗?程序提前完成
- 为什么它是一个无限循环?
- 为什么我的程序在输入字符时有一个无限循环
- 为什么这段代码最终会进入一个无限循环,读取std::cin
- 如何使其成为一个无限循环
- Tcl_CreateInterp怎么会变成一个无限循环呢
- C++,得到一个无限循环
- C++ 使用 cin.fail(), cin.clear() ---我有一个无限循环,不知道为什么
- 这个递归函数(回文)变成了一个无限循环
- 当对象被卡在一个无限循环中而被破坏时会发生什么
- 代码在小输入时运行良好,但在大输入时就像一个无限循环
- 从文件中读取信息后,会发生一个无限循环
- 数独求解矩阵,而语句给出了一个无限循环
- 为什么这是c++中的一个无限循环