C++ 线程:尝试使用已删除的函数
C++ Threading : Attempt to use a deleted function
我正在使用 JUCE 框架在 C++ 中制作 MIDI 生成器。
我想在不同的线程中生成,这样它就不会阻塞我的整个程序。
这就是我制作主题的方式:
std::thread generationThread (&MainContentComponent::generateProgression,var1, var2);
generateProgression 是基于 var1(整数)和 var2(布尔)生成 MIDI 的函数
线程是在 MainContentComponent class 中创建的,generateProgression 是 class 的一个函数。
问题是我收到一个编译错误:"Attempt to use a deleted function"。
谁能告诉我我做错了什么?
不知道为什么我对这个有这么多反对票。
幸运的是,我的一个朋友告诉我出了什么问题。
我还需要提供当前的上下文。
由于线程是在还包含函数的 class 中创建的,因此上下文可以是 "this".
std::thread(&Fooclass::fooMainloopMemberFunction, context, argument);
或者在我的情况下
std::thread generationThread (&MainContentComponent::generateProgression,this,var1, var2);
我正在使用 JUCE 框架在 C++ 中制作 MIDI 生成器。 我想在不同的线程中生成,这样它就不会阻塞我的整个程序。 这就是我制作主题的方式:
std::thread generationThread (&MainContentComponent::generateProgression,var1, var2);
generateProgression 是基于 var1(整数)和 var2(布尔)生成 MIDI 的函数
线程是在 MainContentComponent class 中创建的,generateProgression 是 class 的一个函数。
问题是我收到一个编译错误:"Attempt to use a deleted function"。 谁能告诉我我做错了什么?
不知道为什么我对这个有这么多反对票。 幸运的是,我的一个朋友告诉我出了什么问题。 我还需要提供当前的上下文。 由于线程是在还包含函数的 class 中创建的,因此上下文可以是 "this".
std::thread(&Fooclass::fooMainloopMemberFunction, context, argument);
或者在我的情况下
std::thread generationThread (&MainContentComponent::generateProgression,this,var1, var2);