У меня есть некоторые проблемы с st :: async, когда это используется в другой функции, кроме функции Main,
предположим, у меня есть такие функции, как текущий:
void printData()
{
for (size_t i = 0; i < 5; i++)
{
std::cout << "Test Function" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
}
void runningAsync()
{
auto r = std::async(std::launch::async, test);
}
int main()
{
runningAsync();
std::cout << "Main Function" << std::endl;
}
вывод этого кода:
Test Function
Test Function
Test Function
Test Function
Test Function
Main Function
это нехорошо, основной поток ожидает завершения другого потока.
Я хочу, чтобы функция runningAsync () запускалась в другом потоке, и в то же время «Основная функция» в основном потоке печаталась на экране, это возможно с помощью std :: thread.
таким образом, чтобы этот запуск выполнялся одновременно (параллелизм)?