タイトルにあるように、スレッドを介して継続的に GUI フォーム要素を更新しようとしていますが、フォームはまだビジー状態のようです。これは私には理解できません。これが私がそれに近づいている方法です。
connect(this,SIGNAL(SIGUpdateForm),this,SLOT(MyUpdateMehtod));
フォームを更新する必要があるときはいつでも、次のことを行うだけです。新しいスレッドでメソッドを起動します。次に、新しいスレッドが上記のシグナルをトリガーします。
boost::thread t(&SomeClass::SomeMethod(),this);
someMethod が開始されると、ここで私が行うことです
void SomeMethod()
{
SIGUpdateForm(); //Launch the signal that will update the form
}
次に、SIGUpdateForm は MyUpdateMehtod() を呼び出しますが、シグナル以降 (キューに入れられたものでもダイレクトでもスレッドが起動されないため、フォームがハングしているように見えます)。しかし、シグナル自体が独立したスレッドから呼び出されているため、これは私を混乱させます。ぶら下げ?この作業を行うにはどうすればよいですか?