0
在運行期間,我收到錯誤消息:「pure vitual function called」。QThreadPool調用父類的純虛函數QRunnable
QThreadpool似乎調用父類QRunnable
的pure virtual void run()
,而不是在派生類Bm
中關閉void run()
。 奇怪的是,如果我可以用b_1.run();
手動調用函數,那麼在運行時沒有問題。
這裏是我的類implentation:
class Bm : public QRunnable
{
public:
void run()
{
test();
}
private:
void test();
};
這是我的主要功能在錯誤發生。
int main()
{
QThreadPool pool;
pool.setMaxThreadCount(1);
BM b_1;
pool.start(&b_1);
return 0;
}
我的問題:爲什麼要犯規Qthreadpool使用Bm::run()
超過QRunnble::run()
?
嘗試在從main()返回之前調用pool.waitForDone()。看起來b_1在線程開始之前被刪除... – Archie
謝謝。這工作。我現在該怎麼辦?我是否刪除該問題是因爲我的問題的答案看起來微不足道,或者應該有發佈的答案? – FruitSokrat
我認爲你的問題是完全有效的,並可能幫助其他人。 – Archie