2

長いプロセスがあるイベントハンドラー内で QApplication::processEvents() を呼び出すことは可能ですか? プログラムが Segfault で終了します。私のコードは次のようなものです:

void MyApplication::customEvent(QEvent* event)
{
  if(event->type() == UserEventCustom)
  {
    for(int i = 0; i < 99999; ++i)
    {
       QApplication::processEvents();
       doSomething();
    }

    event->accept();
  }
}
4

1 に答える 1

1

スタック オーバーフローが発生しているという Ton van den Heuvel (コメントから) は正しいと思われます。

ただし、私の会社では、processEvents() を避けるのが最善であることがわかりました。私たちの経験では、processEvents() がクラッシュを引き起こすことがわかっており、その使用を避けるようにしています。processEvents() 呼び出しなしでコードをリファクタリングできるかどうか自問してみてください。たとえば、スレッドを生成して処理を行うことができます。

于 2011-05-11T04:14:10.600 に答える