スレッドで作業の無限ループを作成する必要があります。この記事では、著者は次のように書いています。
>you should never ever block the event loop
シグナルスロットの概念をブロックするためです。でイベントループと無限ループを使用するにはどうすればよいQThread
ですか?
スレッドで作業の無限ループを作成する必要があります。この記事では、著者は次のように書いています。
>you should never ever block the event loop
シグナルスロットの概念をブロックするためです。でイベントループと無限ループを使用するにはどうすればよいQThread
ですか?
ループは、常に複数回呼び出される関数に置き換えることができます (ただし、常に便利というわけではありません)。スロットを作成し、それに接続QTimer
します。関数に作業の反復を行わせます。
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(iteration()));
timer->start(50);
void MyClass::iteration() {
if (!timer->isActive()) { return; }
//do something
}
ループを止めたい場合は、 を呼び出しますtimer->stop()
。