スレッド化と同時実行はまったく初めてですが、関数を新しいスレッドとして開始しようとしていますが、エラーがわかりません。のようなエラーが表示されますCandidate expects X arguments, 2 provided
。0 < X <= 9
このエラーは(2 を除く)繰り返されます。ただし、私が見たすべての例では、関数とその引数を配置するのと同じくらい簡単です。私のコードは次のようになります:
トレーナー.cpp:
int time = 5; // for example
void Member::decrement(int seconds){
while(seconds > 0){
seconds--;
Sleep(1000);
}
isBusy = false;
}
void Member::startDecrement(string state){
if (state == "busy"){ // isBusy is a private boolean, hence this
isBusy = true;
thread myThread = thread(decrement, time); // Thread for method
myThread.join();
else {
isBusy = false;
}
}
しかし、これは機能しませんか?私がやろうとしていることは非常に簡単ですが、私にとってはまだうまくいく方法が見つかりません。の代替手段thread
も高く評価されてstd::async
います。これはオプションであることがわかりましたが、コンパイラのセットアップでは機能しないようです。
設定情報: -sdt=c++11
、MinGW
、Win64
、GCC 4.7.2
編集:
私がエラーに釘付けになっているのを見て、ここにエラーログ全体があります。
回答で提供されているコードも試しましたが、うまくいきませんでした。