我正在用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