2011-09-16 25 views
1

私はあなたの車からデータを受け取り、それをバーチャルガジェットボードに表示するプログラムに取り組んでいます。私は、ソフトウェアを再構築して、私が学んだ新しいテクニックを適用する計画を立てています。値渡しまたはカスタムデータ構造への参照?

私の質問は私の車のステータスの現在のスナップショットを持っているデータセットによってバックアップされています。描画可能オブジェクトを初期化するときに、データセット内の値にポインタを渡す必要がありますか、描画可能オブジェクトの更新関数を呼び出すときにバッファを介して実際の値をバッファに渡す必要があります。描画可能なオブジェクトへのポインタを渡すと、更新関数を呼び出すと値が取得されますが、同時にオブジェクトに関数をロックしてデータセットに可能な値の挿入を見逃す手段を与える必要がありますハードウェア私が値渡しで直接更新機能に渡すと、実際の図面とスレッドロックを分けることができますが、グラフィックスがその値を取得するにはもう少し時間がかかることがあります。また、値を渡すと、ただ更新されたパラメータの数にかかわらず、データセット全体をバッファにコピーするほうが有益です。

今のところ、ソフトウェアはグラフィックスとデータセットの間にバッファを持つように設定されているので、データセットが更新されてその値がバッファに渡されて画面に描画されます。私がソフトウェアを書き直そうとしている理由は、この方法が私のために遅くなるように思えるからです。

そうですね、プログラミング方法が優れています。

+0

小型、簡潔な例は、これを簡単に理解することになるだろう。私は "テキストの壁"からの質問を掴むのに苦労しました。 –

答えて

0

ハードウェアからのすべての更新をキューに入れ、完全なバックアップデータセットの完全なレンダリングが完了した時点で、データセットとディスプレイに対してのみ、それらの処理とその後の更新を処理します。必要なロックは、ハードウェア読み取りスレッドからアップデートが入ったプロデューサ - コンシューマキューにのみ存在します。関係とあなたの選択肢を示す

RGDS、 マーティン

+0

ああ - 私は実際に質問に答えなかった - 私は最初に '参照渡し'と言っていたはずです:) –

関連する問題