使用两者来完成给定任务的优缺点分别是什么?
百万美元的问题是使用哪一个,什么时候使用?
非常感谢。
发布于 2009-04-14 14:23:49
我习惯于将BackgroundWorker作为Thread的包装器。所以我在图形用户界面上使用BackgroundWorker,而在更专业或更脏的工作(Windows服务等)上使用线程
发布于 2009-04-14 14:23:39
如果您所说的“线程”是指显式地使用System.Threading.Thread类来创建、配置和启动您自己的线程,那么答案是这样做对您来说是更多的工作,涉及更多的cpu周期,而不仅仅是从线程池中拉出线程(wjhich是其他技术所做的),但它为您提供了更多的灵活性,因为它允许您指定线程优先级,以及使用线程池线程无法提供的其他几个特征。
当在设计时不知道所需的线程数量时,“线程池”方法更合适。该池最初包含少量线程,“准备好”供您调用它们。它可以根据需要动态创建新线程,并为您管理未使用线程的创建、协调和删除。有三种机制可以用来访问和使用池中的线程。
使用technique)
发布于 2009-04-14 14:29:08
看一看this great threading overview
BackgroundWorker提供以下功能:
最后两个功能特别有用-它意味着您不必在worker方法中包含try/catch块,并且无需调用Control.Invoke即可更新Windows窗体和WPF控件。
https://stackoverflow.com/questions/747807
复制相似问题