我想在我做其他事情时在我的程序后台运行一个计时器。
我的程序看起来像:
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>
问题是,在使用异步调用函数“计时器”后,它不会停止,这也会导致函数 1 被卡住。
我知道没有选项可以取消线程(还),为此我必须将“原子变量”标志传递给异步任务。有人可以给我举个例子吗?