ピクチャボックスに720x480ビットマップを非常に高速にロードしようとしていますが、イメージをピクチャボックスに読み込む際に、アプリケーションのUIがかなり遅くなります。 周辺には道がありますか? バックグラウンドワーカーを使用しているときに、DoWorkイベントの画像コントロールに画像を読み込むことができません。UIをスローダウンせずにPictureBoxにイメージをロード
私のオプションは何ですか?
ありがとうございました
ピクチャボックスに720x480ビットマップを非常に高速にロードしようとしていますが、イメージをピクチャボックスに読み込む際に、アプリケーションのUIがかなり遅くなります。 周辺には道がありますか? バックグラウンドワーカーを使用しているときに、DoWorkイベントの画像コントロールに画像を読み込むことができません。UIをスローダウンせずにPictureBoxにイメージをロード
私のオプションは何ですか?
ありがとうございました
画像を取得する場所によって異なります。ネットワークドライブやWebやデータベースから来たら、BackgroundWorker
は間違いなくあなたを助けます。 DoWork
ハンドラーで画像を取得し、RunWorkerCompleted
ハンドラーのPictureBox
に画像を割り当てます。
ありがとうございます。私は、バイト配列の形式で画像を受け取った後、そこからビットマップを再構築し、ピクチャボックスのimageプロパティを割り当ててピクチャボックスに表示します。 – GS123
それから、 'BackgroundWorker'を試して、' DoWork'ハンドラで画像を構築し、この構築された画像を 'RunWorkerComplatedHandler'に渡してください。 – TheVillageIdiot
PictureBox.LoadAsyncメソッドを試してみることができます。
Profilerを使用して、最も高価なコールがどこから来ているかを具体的に確認することをお勧めします。 – BeemerGuy
ありがとうございます。私は、バイト配列の形式で画像を受け取った後、そこからビットマップを再構築し、ピクチャボックスのimageプロパティを割り当ててピクチャボックスに表示します。実際にBitmapをPictureBoxに割り当てる部分をコメントアウトすると、UIはまったく遅くはありません。 – GS123
同様の問題があります。 PictureBoxをクリックすると、すべての画像(少数および小画像)がプリロードされます。私が適度に速くクリックすると、ピクチャボックスが私のクリックの一部を逃してしまいます。 – stevenrcfox