我有一個需要幾秒鐘加載的用戶控件。有沒有辦法在表單加載時預加載控件?預加載用戶控件
預加載用戶控件
回答
不要在UserControl的構造函數或Load事件中做一堆工作,而是在工作線程中執行它。 BackgroundWorker對此很有幫助。這將使您可以快速啓動表單,但不一定能快速獲得用戶界面。考慮一個啓動畫面。
我喜歡閃屏的想法。可用性比慢一點的應用加載時間更可接受。感謝閃屏的想法,我從來沒有想過它。 – 2010-03-08 17:26:15
您是否擁有UserControl的源代碼?如果是這樣,我會開始嘗試優化UserControl。聽起來像UC在啓動時創建了太多的UI對象。預加載不會隨時爲您節省。 WinForms UI是單線程的,因此幾秒鐘的加載時間將被移動到應用程序的啓動。我不知道你是否創建了UC的多個實例。如果是這樣,您可能可以重複使用單個實例來避免創建費用。
我有權訪問源,並且只使用它的一個實例。說實話,將控件的加載時間移至應用程序啓動時間是可以接受的答案。然後,我會使用啓動屏幕,如「加載組件」或類似的東西,如nobugz建議的那樣。 – 2010-03-08 17:25:56
首先,使用分析器確定實際造成放緩的因素。然後,如果合適,您可以嘗試優化代碼以使其更快(達到可接受的水平),或者將獨立代碼(如數據訪問)重構爲獨立點,以便可以執行它與用戶控件加載異步。這就是你可以做的所有事情,因爲用戶控件必須與UI相同的線程加載。
在這個階段沒有數據訪問這個控件。在用戶按下「填充」按鈕之前,它只有幾個標籤和一個文本框,它們具有空的文本字段。我將會看到什麼會放慢速度,但是一定會晚一點,因爲我有最後期限,必須完成'功能'。 – 2010-03-08 17:31:22
- 1. Silverlight預加載控件
- 2. 面板和用戶控件vs動態加載用戶控件
- 3. 有條件地加載用戶控件
- 4. 使用jquery加載用戶控件
- 5. 使用jQuery加載用戶控件。()
- 6. ASP.NET - 使用AJAX加載用戶控件?
- 7. 懶加載用戶控件 - ASP.NET
- 8. 保存並加載用戶控件
- 9. 動態加載用戶控件
- 10. 加載用戶控件異步
- 11. 加載用戶控件到的tabcontrol
- 12. 動態加載用戶控件
- 13. 動態加載的用戶控件
- 14. 延遲加載的用戶控件
- 15. 在WPF中加載用戶控件
- 16. 加載用戶控件單擊
- 17. 加載用戶控制
- 18. WPF:加載動畫用戶控件加載
- 19. 用戶控件在網頁中逐個加載19個控件
- 20. 基於其他控制事件動態加載用戶控件
- 21. 如何動態加載包含asp控件的用戶控件
- 22. 從RadTabStrip中的另一個用戶控件加載用戶控件
- 23. 卸載用戶控件
- 24. 控制動態AJAX用戶控件的加載順序
- 25. 在用戶控件的加載事件中,WPF中的其他用戶控件的控件爲null
- 26. 應用程序啓動時預加載UI控件
- 27. 如何預加載或預熱Web應用程序中的所有控件?
- 28. 如何規模的動畫添加到加載用戶控件
- 29. 加載頁面後添加用戶控件
- 30. 在加載時將用戶控件添加到VB6表單上?
您是否在運行時實例化並將此用戶控件添加到窗體? – 2010-03-08 16:28:43