在我的应用程序中,我使用多个线程来执行一些耗时的任务,这些任务旨在在整个应用程序的持续时间内运行。我正在尝试实现一种好的、清晰的方法,在退出应用程序之前仅通过第二个线程来停止循环,以便我可以在循环后进行清理,然后关闭所有内容。
到目前为止,我想出了这种方法,但老实说,我并不是很喜欢它:
到目前为止,我想出了这种方法,但老实说,我并不是很喜欢它:
#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;
}