我試圖非常快速地將720x480位圖加載到圖片盒中,同時將圖片加載到圖片盒時,我的應用程序的UI顯着減慢。 有沒有辦法解決它? 我讀過,當使用backgroundworker時,我無法將圖像加載到DoWork事件中的圖片框控件中。c#將圖片加載到PictureBox,而不會減慢UI
我的選擇是什麼?
謝謝
我試圖非常快速地將720x480位圖加載到圖片盒中,同時將圖片加載到圖片盒時,我的應用程序的UI顯着減慢。 有沒有辦法解決它? 我讀過,當使用backgroundworker時,我無法將圖像加載到DoWork事件中的圖片框控件中。c#將圖片加載到PictureBox,而不會減慢UI
我的選擇是什麼?
謝謝
這取決於你從哪裏獲得圖像。如果它來自網絡驅動器或網絡或數據庫然後BackgroundWorker
一定會幫助你。獲取DoWork
處理程序中的映像,並將映像分配到RunWorkerCompleted
處理程序中的PictureBox
。
謝謝。我以字節數組的形式接收圖像,然後從中重新構建一個位圖,然後通過指定圖片框的圖像屬性將其顯示在圖片框中。 – GS123 2010-12-15 04:23:13
然後請嘗試'BackgroundWorker'並在'DoWork'處理程序中構建圖像,並將此構造的圖像傳遞給'RunWorkerComplatedHandler'。 – TheVillageIdiot 2010-12-15 04:32:23
您可以嘗試使用PictureBox.LoadAsync方法。
我建議使用Profiler來查看最昂貴的通話來自哪裏,以便您知道您面臨的是哪個問題。 – BeemerGuy 2010-12-15 04:22:04
謝謝。我以字節數組的形式接收圖像,然後從中重新構建一個位圖,然後通過指定圖片框的圖像屬性將其顯示在圖片框中。如果我註釋掉實際上將Bitmap分配給PictureBox的部分,則UI根本不會緩慢。 – GS123 2010-12-15 04:24:21
有類似的問題。預先加載所有(少量和小)圖像,單擊PictureBox在圖像中循環。如果我點擊速度適中的PictureBox'錯過'我的一些點擊。 – stevenrcfox 2010-12-22 20:24:04