我看到很多人在博客文章和这里,要么避免或建议反对使用 Thread
类在最近版本的 C # (我的意思是当然4.0 + ,增加了 Task
和朋友)。甚至在此之前,对于一个普通的旧线程的功能在许多情况下可以被 ThreadPool
类替换这一事实也存在争议。
此外,其他专门的机制进一步使得 Thread
类不那么吸引人,例如 Timer
取代了丑陋的 Thread
+ Sleep
组合,而对于 GUI,我们有 BackgroundWorker
等等。
尽管如此,对于一些人(包括我自己)来说,Thread
似乎仍然是一个非常熟悉的概念,这些人在面对一个涉及某种并行执行的任务时,会直接使用老式的 Thread
类。我最近一直在想是不是该改过自新了。
因此,我的问题是,有没有必要或有用的情况下,使用一个普通的旧 Thread
对象,而不是上述结构之一?