2010-12-15 6 views
2

ピクチャボックスに720x480ビットマップを非常に高速にロードしようとしていますが、イメージをピクチャボックスに読み込む際に、アプリケーションのUIがかなり遅くなります。 周辺には道がありますか? バックグラウンドワーカーを使用しているときに、DoWorkイベントの画像コントロールに画像を読み込むことができません。UIをスローダウンせずにPictureBoxにイメージをロード

私のオプションは何ですか?

ありがとうございました

+0

Profilerを使用して、最も高価なコールがどこから来ているかを具体的に確認することをお勧めします。 – BeemerGuy

+0

ありがとうございます。私は、バイト配列の形式で画像を受け取った後、そこからビットマップを再構築し、ピクチャボックスのimageプロパティを割り当ててピクチャボックスに表示します。実際にBitmapをPictureBoxに割り当てる部分をコメントアウトすると、UIはまったく遅くはありません。 – GS123

+0

同様の問題があります。 PictureBoxをクリックすると、すべての画像(少数および小画像)がプリロードされます。私が適度に速くクリックすると、ピクチャボックスが私のクリックの一部を逃してしまいます。 – stevenrcfox

答えて

2

画像を取得する場所によって異なります。ネットワークドライブやWebやデータベースから来たら、BackgroundWorkerは間違いなくあなたを助けます。 DoWorkハンドラーで画像を取得し、RunWorkerCompletedハンドラーのPictureBoxに画像を割り当てます。

+0

ありがとうございます。私は、バイト配列の形式で画像を受け取った後、そこからビットマップを再構築し、ピクチャボックスのimageプロパティを割り当ててピクチャボックスに表示します。 – GS123

+0

それから、 'BackgroundWorker'を試して、' DoWork'ハンドラで画像を構築し、この構築された画像を 'RunWorkerComplatedHandler'に渡してください。 – TheVillageIdiot

関連する問題