ここで、QVector クラスが暗黙的なデータ共有を使用して、リソースの使用を最大化し、コピーを最小限に抑えることを読みました。別のスレッドのスロットに QVector パラメータを持つシグナルを発行すると、データのコピーが発生するかどうかはわかりません! これらの質問もこの問題に関連しています。
シグナル/スロットを介してワーカー スレッドからメイン スレッドに QVector を渡す
Qt シグナルで QVector 参照を発行するとコピーが発生する
しかし、私はそれらから要点を得ることができませんでした。明らかに私の質問は次のとおりです。
私は信号を持っています:
void someSignal(QVector<int> values);
そしてスロット:
void someSlot(QVector<int> values);
これらは異なるスレッドにあり、それらを接続します。したがって、接続タイプは Qt::QueuedConnection です。また、スロット内で QVector 要素が変更されていないことを明記する必要があります。それらはただ読まれるだけです。
シグナルを発すると QVector 要素がコピーされますか?