Это зависит от архитектуры вашей программы: если вы позволите функции запускаться в своем собственном потоке, тогда да, вы можете использовать функцию std :: this_thread :: sleep_for, чтобы приостановить эту функцию, не затрагивая всю программу, например
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();
}