nic-segawa
2017年7月12日 13時22分
お世話になります。
QThreadを用いて画面更新処理と制御・演算処理を分割し、処理速度の向上を目指しています。
画面上にラベルを30個程度配置し、テキスト、背景の色を制御・演算処理結果に応じて変更しています。
制御・演算処理はQTimerを用いて1msecごとに処理を行っています。
画面の更新が無い場合はQTimerは1~3msecごとに処理されるのですが、画面が更新されるタイミングで20msec程度掛かっています。
スレッドを分けていてもこの程度の遅延は発生するものでしょうか?
よろしくお願い致します。
コメント
nic-segawa
at_yashi
2017年8月18日 18時31分
QTimer で、1 ms 毎に呼び出される関数を作成しているということですよね?
画面の更新が完了するのには、どれくらい時間が必要なのでしょうか?
Thread は魔法ではないので、 他のスレッドが CPUを専有してしまっていて
かつ thread が schedule されない状態だと、ある thread が CPU を掴むまでに
時間がかかります。
演算結果によって画面を更新しているようなので、
- まず、画面の更新に何秒かかるか確認
- Thread を使わず、演算後に更新があれば更新する
を loop で回してはどうでしょうか?