是後臺工作者的一個線程?我應該什麼時候使用它?是後臺工作者的一個線程嗎? (C#)
回答
是的,它基本上像一個線程,但額外的功能(事件通知您的進度與完成) 。
您應該在需要執行某些可能需要一段時間(例如計算,文件或數據庫讀取/寫入,Web請求等)的情況下使用它,並且您不希望圖形用戶界面在顯示時無響應正在發生:
BackgroundWorker類允許您在單獨的專用線程上運行操作。諸如下載和數據庫事務等耗時的操作可能會導致您的用戶界面(UI)看起來好像在運行時停止響應一樣。如果您想要一個響應式用戶界面,並且您面臨着與此類操作相關的長時間延遲,則BackgroundWorker類提供了一個便捷的解決方案。
謝謝先生(10x).. :) – yonan2236 2010-08-20 02:43:34
一個簡單的例子:
static void Main(string[] args)
{
BackgroundWorker worker = new BackgroundWorker();
//DoWork is a delegate, where you can add tasks
worker.DoWork += (sender, e) =>
{
//blabla
};
worker.DoWork += (sender, e) =>
{
//blabla
};
worker.RunWorkerCompleted += (sender, e) =>
{
var IfYouWantTheResult = e.Result;
//maybe notify others here
};
worker.RunWorkerAsync();
//you can cancel the worker/report its progress by its methods.
}
欲瞭解更多詳細信息,請here
後臺工作人員基本上是一個線程,它會在完成時回調,並且回調將在U.I.的上下文中進行。線程,以便您可以更新U.I.完成後。
如果您需要在U.I.的背景下完成回調。線程 - 使用它。否則,你應該只使用普通的線程。
這裏是一個應用程序的示例代碼,它在下載某物時顯示進度條。使用後臺工作
http://devtoolshed.com/content/c-download-file-progress-bar
和這裏的約後臺工作的快速教程
http://www.dotnetperls.com/backgroundworker
我建議你使用它,當你有一個耗時的操作(下載文件等)和你希望用戶界面處於活動狀態。如果您想要在界面上顯示進度,如在標籤上顯示百分比,或者您想使用進度欄,則該功能非常實用。
我特別與進度控制使用。
- 1. C#應該創建一個或多個後臺工作者嗎?
- 2. 暫停和恢復一個線程(後臺工作者)
- 3. C#,後臺工作者類
- 4. C#後臺工作者sql
- 5. 如何使用線程/後臺工作者C#實現SerialPort?
- 6. WPF和後臺工作者和調用線程必須是STA
- 7. 後臺工作線程
- 8. ASP.NET後臺工作線程
- 9. C#加入後臺工作線程中的線程DoWork()
- 10. C#後臺工作者DoWork被卡住
- 11. 更適合我的任務:後臺工作者或線程池?
- 12. 關於線程/後臺工作者的問題
- 13. 儘管後臺工作者不在另一個線程中運行類方法?
- 14. 等到一個後臺工作者完成沒有鎖定主線程
- 15. 在調試期間,進入後臺工作者/線程。可能?
- 16. 後臺工作 - 服務,線程或兩者
- 17. 後臺工作者線程不取消取消
- 18. 後臺工作者和跨線程問題
- 19. 一個後臺工作線程和多個進度條
- 20. 後臺工作進程或線程?
- 21. C++:一個作家/多讀者訪問unordered_map線程安全嗎?
- 22. ruby的後臺工作線程
- 23. 後臺工作的GUI線程
- 24. 守護進程線程在後臺工作時返回一個函數(C++)
- 25. 我可以使用太多的後臺工作線程嗎?
- 26. g ++是在後臺使用pthreads的C++ 11線程模型嗎?
- 27. c中的後臺線程#
- 28. 多次調用後臺工作線程?
- 29. Asp .Net後臺工作線程
- 30. 用後臺工作線程渲染ListView
我誤讀了嗎?我看到你問「我應該如何使用它」,但現在變成「我應該什麼時候使用它」? – 2010-08-20 02:44:59
沒關係,先生。謝謝 – yonan2236 2010-08-20 03:02:24