C++ Threading: попытка использовать удаленную функцию
Я делаю MIDI генератор в C++, используя фреймворк JUCE. Я хотел бы сделать генерацию в другом потоке, чтобы он не блокировал всю мою программу. Вот как я делаю свою тему:
std::thread generationThread (&MainContentComponent::generateProgression,var1, var2);
generateProgression - это функция, которая генерирует MIDI на основе var1 (целое число) и var2 (логическое значение)
Поток создается в классе MainContentComponent, а generateProgression является функцией этого класса.
Проблема в том, что я получаю сообщение об ошибке компиляции: "Попытка использовать удаленную функцию". Может кто-нибудь сказать мне, что я делаю не так?
1 ответ
Не уверен, почему я получил так много отрицательных отзывов об этом. К счастью, мой друг рассказал мне, что случилось. Мне нужно было также дать текущий контекст. Поскольку поток создается в классе, который также содержит функцию, контекст может быть просто "this".
std::thread(&Fooclass::fooMainloopMemberFunction, context, argument);
или в моем случае
std::thread generationThread (&MainContentComponent::generateProgression,this,var1, var2);