與獲取數據凍結我使用C#。我在這裏得到更多的數據從MySQL databse.I'm使用這一個ODBC 3.51 connector.when數據加載凍結我的應用程序創建WPF應用程序。 我試圖解決這個問題使用線程。但我無法做到這一點使用線程。請建議的方式對解決我的問題......WPF形式從數據庫
0
A
回答
2
使用BackgroundWorker -class。它的使用非常簡單,常常用於加載數據等任務。下面的例子演示了它的用法:
BackgroundWorker bgWorker = new BackgroundWorker() { WorkerReportsProgress=true};
bgWorker.DoWork += (s, e) => {
// Load here your data
// Use bgWorker.ReportProgress(); to report the current progress
};
bgWorker.ProgressChanged+=(s,e)=>{
// Here you will be informed about progress and here it is save to change/show progress.
// You can access from here savely a ProgressBars or another control.
};
bgWorker.RunWorkerCompleted += (s, e) => {
// Here you will be informed if the job is done.
// Use this event to unlock your gui
};
bgWorker.RunWorkerAsync();
使用BackgroundWorker的允許的UI線程繼續它的處理,因此加載過程中應用程序響應休息。但正因爲如此,您還必須確保不會發生依賴加載數據的操作。一個非常簡單的解決方案是將主UI元素IsEnabled-property設置爲false,並在RunWorkerCompleted中將其設置爲true。有了一點幻想,你可以改善這種愚蠢的行爲,並提供一個很好的UI體驗(取決於應用程序)。
這是一般好的建議做一個單獨的線程(BackgroundWorker的)很長一段時間的操作。有一點需要注意:不要在DoWork事件中創建WPF元素。這不會做,因爲所有派生類型的DependencyObject必須在它們使用的同一個線程中創建。
還有其他的解決方案,要做到這一點,例如直接創建一個線程或基於事件的異步模式,但是我建議使用的BackgroundWorker你的任務,因爲它HANDELS爲您的管道。最後,結果是一樣的,但它的方式要容易得多。
相關問題
- 1. XAMPP - 形式到數據庫
- 2. Access數據庫形式
- 3. PHP數據庫形式CSS
- 4. 以php表格形式從mysql數據庫以php的形式顯示數據
- 5. WPF登錄認證形式的SQL Server數據庫
- 6. 移植從形式到WPF
- 7. 數據庫不是從形式存儲數據
- 8. 從WPF保存到SQL Server數據庫
- 9. 從WPF的數據庫字段應用樣式
- 10. WPF根據數據庫更改更新的條形圖
- 11. 形式連接到數據庫
- 12. 使用數據庫的導軌形式
- 13. 如何總金額形式數據庫
- 14. 形式提交空值數據庫
- 15. 導軌形式到數據庫設置
- 16. 的ColdFusion - 形式綁定到數據庫
- 17. 多頁形式和數據庫邏輯?
- 18. 搖擺形式的數據庫連接
- 19. 簡單的形式沒有數據庫
- 20. 以數據庫的形式顯示
- 21. 形式不添加到數據庫,它
- 22. 形式張貼到數據庫
- 23. 形式數據
- 24. 數據格式從MySQL數據庫
- 25. 格式的數據從數據庫
- 26. 如何從數據庫形式手動填充選擇(多值)
- 27. 的Rails 4.1.6將不在數據庫中,從形式
- 28. 從sql數據庫名稱形式刪除引號c#
- 29. django從香脆的形式訪問數據庫
- 30. 插入從接觸形式的數據庫
感謝lot.I將嘗試添加背景工人在我的應用程序。 – hmlasnk
@Hemal:如果這個答案幫助你,請點擊下面的投票按鈕,複選標記,以紀念這個答案爲接受的答案。 – HCL
此評論是成績。再次感謝。 – hmlasnk