Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 每X秒运行一次函数c++;_C++_Multithreading - Fatal编程技术网

C++ 每X秒运行一次函数c++;

C++ 每X秒运行一次函数c++;,c++,multithreading,C++,Multithreading,我在一个控制台应用程序中使用VC++2008。我想每x秒调用一个函数。我有一段代码,但问题是setTimer后面的代码没有执行。我看起来像一个同时定时器或线程,但由于我的C++版本是旧的,我不能包括线程或时间。有人能帮我吗?提前谢谢 代码如下: void CALLBACK f(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime){cout <<"Hello";} int _tmain(){ MSG msg; SetTimer(NULL,

我在一个控制台应用程序中使用VC++2008。我想每x秒调用一个函数。我有一段代码,但问题是setTimer后面的代码没有执行。我看起来像一个同时定时器或线程,但由于我的C++版本是旧的,我不能包括线程或时间。有人能帮我吗?提前谢谢

代码如下:

void CALLBACK f(HWND hwnd, UINT uMsg, UINT timerId, DWORD dwTime){cout <<"Hello";}

int _tmain(){
MSG msg;
SetTimer(NULL, 0, 100*60,(TIMERPROC) &f);
while(GetMessage(&msg, NULL, 0, 0)) 
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
//more code to be execute, but it does not.
return 0;}
void回调f(HWND-HWND,UINT-uMsg,UINT-timerId,DWORD-dwTime){cout
#包括
float timeDelta=0;
时钟时钟=时钟(),温度;
而(timeDelta
#包括
float timeDelta=0;
时钟时钟=时钟(),温度;

虽然(timeDelta Busy wait polling可能是一种摆脱工作的好方法。谢谢Zach。使用此代码可以一直运行程序,直到进入时钟?@Andermutu,如果你的意思是,你可以一直运行程序,直到它达到时间限制吗?那么是的。只要将while条件包含在主程序循环中,并获取代码即可按照上面列出的顺序,否则它实际花费的时间将与您的程序所说的时间不一致。再次感谢Zach,但我得到了这个错误。“错误1错误C3861:“时钟”:无se encontróel Identificator c:\Users\P\Documents\Visual Studio 2008\Projects\Timer 3\Timer 3\Timer 3.cpp 9 Timer 3”也许我需要在g其他?忙等待轮询可能是一种摆脱工作的好方法。谢谢Zach。使用此代码可以一直运行程序直到时钟进入?@Andermutu如果你是说,你能一直运行程序直到它达到时间限制吗?那么是的。只需将while条件封装在主程序循环中,并将代码abo请按列出的顺序执行,否则实际花费的时间将与程序所说的时间不一致。再次感谢Zach,但我收到了此错误。“错误1错误C3861:“时钟”:无se encontróel标识或c:\Users\P\Documents\Visual Studio 2008\Projects\Timer 3\Timer 3.cpp 9 Timer 3”也许我需要包含一些se?是的,但我更喜欢使用控制台应用程序。我更习惯。对不起。如果你想继续从事这项业务,你需要时不时地学习一些新东西。是的,但我更喜欢使用控制台应用程序。我更习惯。对不起。如果你想继续从事这项业务,你需要时不时地学习一些新东西。
#include <time.h>

float timeDelta = 0;
clock_t clk = clock(), temp;

while (timeDelta <= /*NumSecondsDesire*/)
{
    temp = clock() - clk;
    clk = clock();
    timeDelta += (float)((float)temp / CLOCKS_PER_SEC);
}