我希望在我的程序后台运行一个计时器,而其他的东西。
我的程序如下:
void timer(int number)
{
std::this_thread::sleep_for(std::chrono::seconds(number));
std::cout << "executing someFunction()";
}
int function1()
{
int number = 3;
auto future = std::async(timer, number)
int choice;
std::cout << "please enter a number: ";
std::cin >> choice;
while (choice != 0)
{
std::cout << choice << std::endl;
std::cout << "please enter a number: ";
std::cin >> choice;
}
return 1;
}
int main()
{
int num_rows = function1();
}
标题是:
#include <iostream>
#include <chrono>
#include <future>
问题是,在用异步调用函数“timer”之后,它不会停止导致function1被卡住。
我知道没有选项可以取消线程(还),这样做我必须将“原子变量”标志传递给异步任务。有人能告诉我一个例子吗?
其他来源:
c++ background timer (stackoverflow)
is there a way to cancel/detach a future in c++11? (stackoverflow)