Ich habe festgestellt, dass System.Threading.Thread einen Finalizer implementiert, aber nicht IDisposable. Die empfohlene Praxis ist, immer IDisposable zu implementieren, wenn ein Finalizer implementiert wird. Jeffrey Richter schrieb dass die Leitlinie "sehr wichtig ist und ausnahmslos befolgt werden sollte".
Warum implementiert Thread also nicht IDisposable? Es scheint, dass die Implementierung von IDisposable eine nicht-brechende Änderung wäre, die eine deterministische Bereinigung der finalisierbaren Ressourcen von Thread ermöglichen würde.
Und eine verwandte Frage: da Thread abschließbar ist, muss ich Verweise auf laufende Threads halten, um zu verhindern, dass sie während der Ausführung abgeschlossen werden?