我正在用C++编写一些东西,其中包括一个倒计时函数,它在达到0时设置一个值。我一直在研究线程/ pthreads/boost线程几个小时,我似乎无法得到任何工作,所以我理想的是寻找需要用我的代码做什么的演练。我对C++相当陌生,但不管语言如何,并发性都超出了我以前看过的任何内容。在后台运行函数直到完成MinGW + Windows
我想在后台运行的功能是:
void Counter::decrementTime(int seconds){
while(seconds != 0){
seconds--;
Sleep(1000);
}
bool = false;
}
它将通过为简单的东西可以被称为(这只是举例):
void Counter::setStatus(string status){
if(status == "true"){
bool = true;
decrementTime(time); // Needs to run in background.
} else if (status != "false"){
bool = false;
}
}
我已经尝试了各种各样的东西,如std:thread myThread(decrementTime, time);
以及其他各种尝试(所有标题正确包括等)。
如果有人能帮助我,我会很感激。我不需要监视正在运行的函数或任何其他的东西,我需要的就是在它到达时设置bool
。我使用启用了-std=c++11
的MinGW编译器运行Windows,正如我前面提到的,我很乐意解决这个问题(并解释了它是如何解决的),所以我可以更好地理解这个概念!
哦,如果有没有线程的替代(更好)的方式来做到这一点,请随时分享您的知识!
请详细说明你准备尝试完成的事情,请在“if(status ==”true“)... else if(status!=”false“)等条件下解释你的逻辑......” – 2013-03-02 00:39:27
@AndyT那不是它会是什么,这仅仅是为了举例。我想继续做不同的事情,而'seconds'在后台倒数到0。意思是我可以在别处使用'while(!bool)'。 – whitfin 2013-03-02 00:45:39