2010-12-15 65 views
2

我試圖非常快速地將720x480位圖加載到圖片盒中,同時將圖片加載到圖片盒時,我的應用程序的UI顯着減慢。 有沒有辦法解決它? 我讀過,當使用backgroundworker時,我無法將圖像加載到DoWork事件中的圖片框控件中。c#將圖片加載到PictureBox,而不會減慢UI

我的選擇是什麼?

謝謝

+0

我建議使用Profiler來查看最昂貴的通話來自哪裏,以便您知道您面臨的是哪個問題。 – BeemerGuy 2010-12-15 04:22:04

+0

謝謝。我以字節數組的形式接收圖像,然後從中重新構建一個位圖,然後通過指定圖片框的圖像屬性將其顯示在圖片框中。如果我註釋掉實際上將Bitmap分配給PictureBox的部分,則UI根本不會緩慢。 – GS123 2010-12-15 04:24:21

+0

有類似的問題。預先加載所有(少量和小)圖像,單擊PictureBox在圖像中循環。如果我點擊速度適中的PictureBox'錯過'我的一些點擊。 – stevenrcfox 2010-12-22 20:24:04

回答

2

這取決於你從哪裏獲得圖像。如果它來自網絡驅動器或網絡或數據庫然後BackgroundWorker一定會幫助你。獲取DoWork處理程序中的映像,並將映像分配到RunWorkerCompleted處理程序中的PictureBox

+0

謝謝。我以字節數組的形式接收圖像,然後從中重新構建一個位圖,然後通過指定圖片框的圖像屬性將其顯示在圖片框中。 – GS123 2010-12-15 04:23:13

+0

然後請嘗試'BackgroundWorker'並在'DoWork'處理程序中構建圖像,並將此構造的圖像傳遞給'RunWorkerComplatedHandler'。 – TheVillageIdiot 2010-12-15 04:32:23