0
A
回答
0
爲了不鎖定在UI線程開始在另一個線程的數據讀取。你可以在UI上公開一個方法(假設你在這裏分離圖層)並從業務層調用該方法。 Windows窗體控件公開一個InvokeRequired標誌,您可以使用該標誌來檢查是否從正確的線程調用控件。如果你沒有在正確的線程上,你可以打電話給一個委託來做。
/// <summary>
/// Delegate to notify UI thread of worker thread progress.
/// </summary>
/// <param name="total">The total to be downloaded.</param>
/// <param name="downloaded">The amount already downloaded.</param>
public delegate void UpdateProgressDelegate(int total, int downloaded);
/// <summary>
/// Updates the progress in a thread-safe manner.
/// </summary>
/// <param name="total">The total.</param>
/// <param name="downloaded">The downloaded.</param>
public void UpdateProgress(int total, int downloaded)
{
// Check we are on the right thread.
if (!this.InvokeRequired)
{
this.ProgressBar.Maximum = total;
this.ProgressBar.Value = downloaded;
}
else
{
if (this != null)
{
UpdateProgressDelegate updateProgress = new UpdateProgressDelegate(this.UpdateProgress);
// Executes a delegate on the thread that owns the control's underlying window handle.
this.Invoke(updateProgress, new object[] { total, downloaded });
}
}
}
或者你可以只使用一個BackgroundWoker;)
相關問題
- 1. 數據加載時顯示進度條
- 2. 如何在Webservice加載數據時顯示進度條?
- 3. 加載時顯示進度條
- 4. 加載Firebase數據庫時顯示進度條
- 5. 當webpack塊在瀏覽器上加載時顯示進度條
- 6. 顯示進度條在加載列表
- 7. 在getJSON加載數據期間顯示jQuery模態進度條
- 8. RadGrid進度條,同時加載數據
- 9. JTable加載值的變化,加載時顯示進度條
- 10. 在上傳時顯示進度條
- 11. 從Firebase數據庫加載數據時顯示進度
- 12. 顯示「加載:進度條」在Android的意圖,直到數據加載
- 13. 使用DataTable將數據加載到DataGridView的進度條
- 14. 顯示下載進度條
- 15. 如何顯示進度條,直到數據加載爲止?
- 16. 下載時顯示進度條
- 17. 當無盡滾動正在加載更多數據時顯示進度條
- 18. Android:如何在將數據加載到WebView時顯示進度條?
- 19. 如何在加載數據並填入recyclerview時顯示進度條?
- 20. 在WPF中查看數據加載時顯示進度圓
- 21. 在Android中加載數據庫時顯示進度對話框
- 22. 顯示在頁面上方的進度條而Winjs.ui.listview加載
- 23. 在子選項卡上顯示進度條,直到WebView加載
- 24. 如何在WebView上顯示加載圖像或進度條
- 25. 加載時不顯示角度數據
- 26. 如何在加載頁面時顯示進度條
- 27. 如何在加載某些控件時顯示進度條?
- 28. 如何在加載時顯示進度條,使用ajax
- 29. 在wp7中加載網頁內容時顯示進度條
- 30. 經典ASP - 在頁面加載時顯示進度條