我在博客文章和此处看到很多人要么避免或建议不要使用Thread
最新版本的 C# 中的类(当然我的意思是 4.0+,还添加了Task
& 朋友们)。甚至在此之前,关于普通旧线程的功能在许多情况下可以被ThreadPool
class.
此外,其他专门机制正在进一步渲染Thread
类别不太吸引人,例如Timer
取代丑陋的Thread
+ Sleep
组合,而对于 GUI,我们有BackgroundWorker
, etc.
尽管如此,Thread
对于某些人(包括我自己)来说,这似乎仍然是一个非常熟悉的概念,当遇到涉及某种并行执行的任务时,人们会直接跳到使用好的旧方法Thread
班级。最近我一直在想是否是时候改变我的方式了。
所以我的问题是,是否有任何情况下有必要或有用使用普通的旧Thread
对象而不是上述结构之一?
Thread 类不能被废弃,因为显然它是一个实施细节你提到的所有其他模式。
但这并不是你真正的问题;而是你的问题。你的问题是
是否有任何情况需要或有用使用普通的旧 Thread 对象而不是上述构造之一?
当然。正是在那些更高级别的构造之一不能满足您的需求的情况下。
我的建议是,如果您发现自己处于现有的更高抽象工具无法满足您的需求的情况,并且您希望使用线程实现解决方案,那么您应该确定您真正需要的缺失的抽象, 进而使用线程实现该抽象, 进而使用抽象.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)