Qt でプログラムを作成しています。このプログラムは、空間内のオブジェクトの軌跡を計算する 10 個のワーカー スレッドを実行します。また、オブジェクトのパスを描画する必要があります。QGraphicsEllipseItem を派生する「Body」クラスがあり、その中に QPainterPath があります。「Simulation」クラスは、世界の障害物のリストと、シミュレートするボディを受け取り、ボディが何かに衝突するまで実行します。シミュレーションは別のスレッドで実行されます (QThread をサブクラス化するのではなく、moveToThread で実行します)。ボディが衝突すると、シミュレーションは終了したことを示す信号を発します。すべてのスレッドが終了したら、パスを描画したいと思います (描画メソッドでパスの描画を有効にする「ボディ」のメソッドを呼び出して実行します)。
残念ながら、私は ASSERT エラーが発生します:
ASSERT: "!unindexedItems.contains(item)" in file graphicsview\qgraphicsscenebsptreeindex.cpp, line 364
それらは一見ランダムに発生します。さまざまな接続タイプを試しましたが、結果はありませんでした。
スレッドをループで開始しています。
私はQt 5.0を使用しています