0
実行時にエラーメッセージ "純粋なvitual関数が呼び出されました"が表示されます。QThreadPoolは親クラスQRunnableの純粋仮想関数を呼び出します
QThreadpoolではなく、派生クラスBm
でvoid run()
オフ、親クラスQRunnable
のpure virtual 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;
}
私の質問:なぜdoesntのQthreadpool QRunnble::run()
上Bm::run()
を使うのか?
main()から戻る前にpool.waitForDone()を呼び出してみてください。スレッドが開始される前にb_1が削除されたようです... – Archie
ありがとうございます。これはうまくいった。私は今これを持っていますか?私の問題への答えが些細なものか、投稿された回答があるべきなので質問を削除しますか? – FruitSokrat
あなたの質問は完全に有効だと思って、他の人を助けるかもしれません。 – Archie