我正在尝试为特殊事件每1秒刷新一次计时器功能。
问题是如果我使用while
+ Sleep(1000)
或for
循环+ Sleep(1000)
,它不会加载其下的其他函数,所以我正在寻找解决方案。
我尝试了以下内容:
void Timer(){
while(true){
// events
if(Get_Current_Minute == Event_Minute)
// do event
Sleep(1000);
}
}
int Main(){
std::cout << " Hello " << std::endl; // loaded
Function() // loaded;
Timer(); // the timer function
std::cout << " Other functions " << std::endl; // not loaded
Function_2() // not loaded
}
那么解决方案是什么?我想在我的应用程序中加载所有内容+每1秒钟有一次计时器刷新事件。
答案 0 :(得分:1)
执行函数Timer()
如果你想实现它,那么Timer();应该是
如果你不想/不想这样做
线程示例:
//---------------------------------------------------------------------------
volatile int threads_run=0;
volatile bool threads_stop=false;
unsigned long __stdcall thread_timer(LPVOID p)
{
threads_run++;
for (;threads_stop;)
{
//Do your event stuff
Sleep(1000);
}
threads_run--;
return 0;
}
void main()
{
HANDLE hnd;
std::cout << " Hello " << std::endl;
Function();
// start Timer thread
hnd=CreateThread(0,0,thread_timer,NULL,0,0);
std::cout << " Other functions " << std::endl;
Function_2();
// stop and wait for all threads
threads_stop=true;
for (;threads_run;) Sleep(10);
}
//---------------------------------------------------------------------------