我注意到 System.Threading.Thread 实现了终结器,但没有实现 IDisposable。推荐的做法是在实现终结器时始终实现 IDisposable。Jeffrey Richter写道,该指南“非常重要,应始终毫无例外地遵循”。
那么为什么 Thread 不实现 IDisposable 呢?似乎实现 IDisposable 将是一项非破坏性更改,它将允许确定性地清理 Thread 的可终结资源。
还有一个相关的问题:既然线程是可终结的,我是否必须持有对正在运行的线程的引用以防止它们在执行期间被终结?