Возврат результата из потока
Попытался вернуть результат выполнения функции в потоке с помощью лямбда функций. Но почему-то выводится "мусор". Я уже и отладчиком прошелся, и видео на эту тему посмотрел. Все равно не могу понять, почему в result не записывается результат функции
int tr(int a, int b)
{
return a + b;
}
int main()
{
setlocale(LC_ALL, "Rus");
int result;
thread th([&result]() {result = tr(3, 10); });
cout << result << endl;
th.join();
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Поменяйте местами строки - вот так:
th.join();
cout << result << endl;
У вас поток отработать не успевает, как вы уже выводите переменную...