Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bushmeister
22 / 22 / 6
Регистрация: 19.03.2015
Сообщений: 137
#1

Использование std::function в std::thread - C++

15.04.2016, 13:14. Просмотров 298. Ответов 2
Метки нет (Все метки)

Нужно вызвать function fnc в новом потоке. Как сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function <void(vector<char>)> fnc;
 
void test(vector<char> data)
{
    for (int i = 0; i < data.size(); i++)
        cout << data[i];
    cout << endl;
}
 
int main()
{
    vector<char> data = { 'a', 'b', 'c', 'd','e', 'f' };
    fnc = test;
    thread thr(fnc);
    thr.detach();
    cout << u8"Finished" << endl;
    cin.get();
    return 0;
}
Выводит ошибку
Error C2893 Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...)'

Нужные хэдеры и неймспейсы подключены.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2016, 13:14     Использование std::function в std::thread
Посмотрите здесь:

std::thread - C++
Возник вопрос: как создать массив потоков (точнее, как его инициализировать). То есть, мне нужно примерно такое: std::thread...

Многопоточность в C++11. std::thread - C++
Привет всем! использую таким образом многопоточность class A { public: void fun() { } };

Указатели и std::thread - C++
Всем здрасьте ! Возникла проблема в понимании ... Возможно я написал не в ту тему, но думаю тут есть эксперты. У меня есть класс...

Std::thread::detach() - C++
Что произойдет, если main - поток завершится раньше чем child.detach()? Добавлено через 3 минуты У меня программа просто завершилась...

Std::thread в классе - C++
Всем привет есть код #include&lt;thread&gt; #include&lt;iostream&gt; class SomeClass { public : SomeClass(); ...

Присоединение потока std::thread - C++
Есть некая функция: int arr(){ do_something(); std::thread th1({ func1(); func2(); func3();}); th1.join() do_something2(); ...

Запутался с std::thread в классе - C++
Гуру, помогите новичку! Учусь кодить в потоках! Немного разообрался. Теперь задача - &quot;завернуть&quot; поток в отдельный класс (внешний...

Копирование объектов std::thread - C++
В учебнике Энтони Уильямса есть простой пример класса scoped_thread, присоединяющего поток в деструкторе: class scoped_thread { ...

Std::thread приостановка потока - C++
Есть прога в C++ Builder. Три функции описаные внизу запускаются в трех разных потоках. Первый поток генерирует данные для для двух других,...

Std::thread автоматическая многопоточность - C++
Есть данный пример создания массива thread и инициализации его в цикле. #include&lt;iostream&gt; #include&lt;sstream&gt; #include&lt;thread&gt; ...

Как убить std::thread? - C++
К сожалению мне так и не удалось найти информацию о том, как корректно убить std::thread в случае необходимости. Как правило, предлагают...

Std::thread как усыпить/ пробудить поток? - C++
Есть ли в std::thread возможность как - то приостановить поток, не разрушая его, а потом, по какому - то сигналу / прерыванию - возобновить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
15.04.2016, 13:42     Использование std::function в std::thread #2
C++
1
thread thr(std::bind(&fnc, std::cref(data)));
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
15.04.2016, 13:48     Использование std::function в std::thread #3
C++
1
thread thr(fnc, cref(data));
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru