этот вопрос похож на How to get return value from a function called which executes in another thread in TBB?, но я работаю с задачами.TBB/Threading Building Blocks: получение возвращаемого значения из задачи
У меня есть следующий код:
vector<vector<int> > all;
for(h=0; h<100;h++){
vector<int> vector1= Node(anotherVector[h], value - 1, anotherVector[h].size());
for (unsigned int u = 0; u < vector1.size(); u++) {
all[h].push_back(vector1[u]);
}
}
«Vector1» сохраняет результат рекурсивного вызова от узла. Я хочу, чтобы TBB вызывал узел параллельно. А затем использовать «vector1», чтобы подтолкнуть его к «все». Моя проблема заключается в том, что если я пытаюсь использовать задачи, мне нужно вернуть объект Task из Node, чтобы использовать spawn_and_wait_for_all (taskobjectlist здесь).
Заранее благодарим за любую помощь.
Hi Anton, благодарит за советом. Я смотрел немного дальше, но не могу найти что-то, что работает. Например, когда я использую task_groups, код может быть таким: g-> run (Node (anotherVector [h], value - 1, anotherVector [h] .size())); g-> wait(); У меня нет возможности получить возвращенный результат этой задачи. – Christian
Задача может содержать ссылку на структуру вывода. Не нужно возвращать что-то вроде функционального программирования. – Anton
Где я могу узнать больше об этом? Есть ли где-нибудь пример? Благодаря! – Christian