QtWebKit関数を別のスレッドで使用している「Dispatcher」と呼ばれるQObject継承クラスを実行しようとしています。
次に、メインの GUI スレッドですが、オブジェクトを初期化すると、次のようになります。
First-chance exception at 0x74f2c41f infoo .exe: 0x000006A6: The binding handle is invalid
オブジェクトのシグナルとスロットは機能しません。それらは true を返しますが、呼び出されません。私が見るエラーに何らかの関連があると思います。インターネットによると、次のように新しいスレッドを開始する必要があります:
CollectorWorker* pCollectorWorker = new CollectorWorker(pUrlStack,m_pSettings);
pCollectorWorker->moveToThread( QApplication::instance()->thread());
QCoreApplication::postEvent(pCollectorWorker, new QEvent( QEvent::User ) );
CollectorWorker は、Dispatcher クラスを開始する別のスレッド オブジェクトです。Dispatcher クラスを初期化すると、このエラーが発生します。
CollectorWorker.cpp
bool CollectorWorker::event( QEvent *ev )
{
if( ev->type() == QEvent::User )
{
Dispatcher dispatcher; // here im getting the error.
return true;
}
return false;
}