私のアプリケーションでは、時間がかかる作業のために複数のスレッドを使用しています。これは、アプリケーション全体で実行することを意図しています。私が達成しようとしているのは、アプリケーションを終了する直前に2番目のスレッドでループを終了させるための素敵できれいなアプローチです。ループの後にきれいにしてからすべてを閉じることができます。別のスレッドで無限ループを停止する
これまでのところ、私はこのアプローチを作ってみたが、私はそれの巨大なファンではない正直に言うと:ちょうどわずかな変化で
#include <iostream>
#include <thread>
bool stop_flag;
void foo()
{
while(!stop_flag)
{
//do something
}
clean_after();
}
int main()
{
stop_flag = false;
std::thread whileThread(foo);
// app lifetime
stop_flag = true;
whileThread.join();
return 0;
}
は、「私はそれの巨大なファンではない」 - それはそうです、私はそれを渡すのアイデアと言ってんだ – dasblinkenlight