Thread.Start()vs BackgroundWorker

时间:2009-12-16 08:37:44

标签: .net multithreading

使用thread.start和使用后台工作程序创建线程有什么区别?

3 个答案:

答案 0 :(得分:11)

假设您正在讨论.NET BackgroundWorker使用来自thread pool的线程(它不会创建新线程,但如果池中没有可用线程则可能会阻塞) Thread.Start启动一个新的托管主题。

答案 1 :(得分:3)

后台工作程序使用线程池中的线程。线程池线程是常规线程,但在重用它们时,启动它们的成本是摊销的。由于启动线程的成本可能很高,因此线程池是短期运行任务的理想选择。

答案 2 :(得分:1)

BackgroundWorker的一大优势是您可以在其ProgressChanged事件处理程序中调用GUI代码。