@OhMyWatch

Как легко и просто выполнить функцию не дожидаясь её окончания?

Есть функция с циклом:
void functionWithWhile() {
    while (1) {
    ...что то происходит, например рендеринг...
    }
}


Есть её вызов в программе:
int main() {
    cout << 1 << endl;
    cout << 2 << endl;
    functionWithWhile();
    cout << 3 << endl;
    cout << 4 << endl;
    return 0;
}

Подскажите наиболее простой способ реалазации программы, которая бы вывела:
1
2
3
4


Другими словами: как "запараллелить" или "заАсинхронить" бесконечный цикл, не дождаясь его конца?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
@dmitryx64
Самый простой способ - запустить отдельный поток, исполняющий эту процедуру. В конце вызов t.join нужен, чтобы главный поток дожидался выполнения дочернего потока t.

<br>
#include <thread><br><br>
int main() {<br>
    cout << 1 << endl;<br>
    cout << 2 << endl;<br>
    std::thread t(functionWithWhile);<br>
    cout << 3 << endl;<br>
    cout << 4 << endl;<br>
    t.join();<br>
    return 0;<br>
}<br>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
22 сент. 2019, в 10:34
10 руб./за проект
22 сент. 2019, в 09:39
3500 руб./за проект