cpp中的WaitForSeconds函数 < > C++中是否有一个函数延迟了运行的函数,类似于C中的WaitForSeconds?我知道Sleep,但它会暂停整个程序,我只想暂停单个函数。

cpp中的WaitForSeconds函数 < > C++中是否有一个函数延迟了运行的函数,类似于C中的WaitForSeconds?我知道Sleep,但它会暂停整个程序,我只想暂停单个函数。,c++,c++11,C++,C++11,这取决于您的程序架构,如果您让函数在自己的线程上运行,那么是的,您可以使用std::this_thread::Sleep\u for function暂停该函数而不影响整个程序,例如 void mythread() { int sum = 0; for(int i = 0; i < 10; ++i) { std::this_thread::sleep_for(1s); sum += i; } return sum; } int main() { s

这取决于您的程序架构,如果您让函数在自己的线程上运行,那么是的,您可以使用std::this_thread::Sleep\u for function暂停该函数而不影响整个程序,例如

void mythread()
{
  int sum = 0;
  for(int i = 0; i < 10; ++i)
  {
    std::this_thread::sleep_for(1s);
    sum += i;
  }
  return sum;
}

int main()
{
  std::future<int> result = new std::async(mythread);
  // do something else
  // ...
  result.get();
}
void mythread()
{
整数和=0;
对于(int i=0;i<10;++i)
{
std::this_线程::sleep_for(1s);
总和+=i;
}
回报金额;
}
int main()
{
std::future result=newstd::async(mythread);
//做点别的
// ...
result.get();
}

std::this_thread::sleep_for()
sleep
sleep_for
都暂停当前线程。“暂停单个函数”是什么意思?但这会暂停整个程序如果当前线程是GUI线程,则会出现这种情况。我的意思是,如果您在GUI线程中执行一个函数,并且该函数处于休眠状态,那么当该函数处于休眠状态时,GUI将被冻结。这假定你的GUI在一个线程上运行。我怀疑OP确实是在请求一个C++协同程序。这是C++ 20的一个新特性。在这里阅读更多:Aravash-您的应用程序是否像GUI应用程序一般具有消息泵的概念?这就提供了很多选择,如果你这样做,