Как передать в поток параметром ссылку [дубликат]

134
28 июня 2019, 07:50

На данный вопрос уже ответили:

  • Как передать аргумент в std::thread по ссылке? 1 ответ

я создаю некоторое количество потоков и делаю это вот так.

  for(int i=0; i<minThread;i++){
        threads.push_back(std::thread(test,sosTest));
        std::cout<<"Поток "<<i<<" создан"<<std::endl;
    }

    std::for_each(threads.begin(),threads.end(),std::mem_fn(&std::thread::join));

вопрос такой. Как мне передать в поток параметр для функции test() если этот параметр ссылка а не указатель?

Answer 1

Для передачи параметра по ссылке в процедуру потока достаточно обвернуть его в std::ref.

Ваш код будет выглядеть как (если я правильно понимаю, что вы хотите обвернуть sosTest) :

 threads.push_back(std::thread(test,std::ref(sosTest)));
READ ALSO
return vector of enum

return vector of enum

есть вот такой enum, я хочу его в вектор положить, а потом из функции вернуть

104
Как вставить данные из MySql в scrollArea QT

Как вставить данные из MySql в scrollArea QT

Подключил базу данных MySQL к окну в QT(думаю что подключил так как ошибки не выдает), а вот как сделать так чтобы в моем списке загружались данные...

126
Перестановка строк и столбцов в матрице для перемещения влево вверх. (С)

Перестановка строк и столбцов в матрице для перемещения влево вверх. (С)

Необходимо двигать строки и столбцы так, чтобы наибольший элемент оказался слева вверхуДо того, как начал разбираться с этими перемещениями,...

125