我正在用 C++ 编写一些东西,其中包括一个倒计时函数,该函数在它达到 0 时设置一个值。我已经研究线程/pthreads/boost 线程几个小时了,但我似乎无法得到任何工作,因此,理想情况下,我正在寻找有关我的代码需要做什么的演练。我对 C++ 相当陌生,但是无论语言如何,并发性都超出了我以前研究过的任何东西。
我想在后台运行的功能是:
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 运行,正如我之前提到的,我很想解决这个问题(并解释它是如何解决的),这样我就可以更好地掌握这个概念!
哦,如果有另一种(更好的)方法可以在没有线程的情况下执行此操作,也请随时分享您的知识!