Я заметил, что System.Threading.Thread реализует финализатор, но не IDisposable. Рекомендуемая практика заключается в том, чтобы всегда реализовывать IDisposable при реализации финализатора. Джеффри Рихтер написал, что руководство "очень важно и должно всегда сопровождаться без исключения".
Итак, почему реализация Thread IDisposable не реализована? Похоже, что реализация IDisposable будет непереломным изменением, которое позволило бы детерминированную очистку ресурсов, подлежащих окончательной публикации Thread.
И связанный с этим вопрос: поскольку поток финализирован, мне нужно удерживать ссылки на выполняемые потоки, чтобы они не могли быть завершены во время выполнения?