0

私は大学の海戦をやっています。C#でやることにしました。私のボードは 20 x 20 のミニ (20x20) PictureBox です。問題は、ボードをロードするときに、それらを含むパネルにすべてを描画するのに大きな遅延が発生することです。そこで私は、画像ボックスの作成と描画の悪化をエスケールする方法を ThreadPool に考えました。

これは正しいアプローチですか?picturesoboxes を一緒に作成および設定するために 20 のスレッドを起動しても、グラフィックの遅延が発生するかどうか疑問に思っています。

(おそらく答えはそれとは無関係なので、今はコードを過去にしません...そうでない場合は、次を過去にします:)

下手な英語でごめんなさい、

ありがとう!

4

3 に答える 3

0

基本的に、メイン スレッド以外の他のスレッドから UI を変更するべきではないため、これはあまり問題ありません。それを行うと、不適切な動作が発生します。写真をロードするコードを確認できます。おそらく改善されるか、別の実装を考えることができます。

于 2010-06-10T19:34:08.190 に答える
0

codeproject の 2 つのサンプル プロジェクトをご覧ください。

于 2010-06-10T19:47:31.733 に答える
0
  1. シングルスレッドを使用します。
  2. UI の構築中に UI の更新を確実に一時停止し、その後更新を再開します。

おそらく、メモリ内に単一のビットマップを構築し (ビットマップが表すグラフィックス オブジェクトに小さなビットマップを描画できます)、単一のビットマップを表示します。(このメソッドでは、ダブルバッファリングも見てください)

于 2010-06-10T20:49:33.833 に答える