私はBoostプログラミングの初心者です。私がやりたいのは、main()が終了するまで継続的に実行されるmain()からスレッドを作成することです。今、私はそのスレッドでいくつかの操作を行っています、そしてそれが行われるとき、それはブールフラグを設定します。main()はこのフラグが設定されるのを待ち、それが「true」の場合、main()はその作業を行い、フラグをリセットして、再び設定されるのを待ちます。他のスレッドは継続的に実行されます。
誰かがこれを達成するためのブーストスレッド命令の簡単なセットを提供できますか?
私はこれを擬似コードで行おうとしています
class Call {
public:
bool flag, do_it;
keyboard_callback() {
if('s' pressed) do_it = true;
}
f() { // some callback function
if(do_it == true) flag=true;
}
void func() {
...register callback f()
...register keyboard_callback()
...
while(some condition) { keep running , exit when 'q'}
...
}
};
main()
{
Call obj;
boost::thread th (boost::bind(&Call::func, &obj));
th.detach();
while(true) {
while (obj.flag == false);
...do something
}
}