02. Потоки и функции с return, возврат результата выполнения потока

Потоки и функции с return
Лямбда выражения и возврат результата выполнения потока

Иногда необходимо в поток передать функцию, возвращающую какое-то значение, для этого удобно использовать лямбда-функции и в них получать возвращаемое значение, например:

int Sum(int a, int b)
{
    return (a+b);
}

int main()
{
    Sleep(2000);

    int result=0;
    thread Task1([&result]() {result=Sum(3,2); });

    Task1.join();

    cout<<result<<endl;

    return 0;
}

По сути мы создаем лямбда-функцию, внутри которой вызываем функцию sum и ждем ее результата, который по указателю записываем в переменную result.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *