Thread.Start()与BackgroundWorker的区别

5
使用thread.start和使用background worker创建线程有什么区别?
3个回答

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

3

后台工作者使用线程池中的线程。线程池线程是普通线程,但由于它们被重复使用,因此启动它们的成本已经分摊。由于启动线程的成本可能很高,因此线程池非常适合短时间运行的任务。


1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接