当我调用 joinThread 时,偶尔会std::system_error
在 join 调用中抛出“无效参数”。该错误似乎只在我使用 gcc 编译时出现,并且它并非始终可重现,即它偶尔会发生并且不可预测。有谁知道什么可能导致这样的错误?
下面是我的代码的简化版本。
class exampleClass
{
public:
exampleClass()
{
}
~exampleClass()
{
joinThread();
}
void doWork()
{
joinThread();
workThread = std::thread(&exampleClass::threadFunction, this);
}
void joinThread()
{
if(workThread.joinable()) workThread.join();
}
protected:
void threadFunction()
{
std::cout << "Do something that requires time..." << std::endl
}
std::thread workThread;
}
任何帮助将不胜感激。