Почему Поток не реализует IDisposable?

Я - большой поклонник книги Francesco Balena" Практические Инструкции и Лучшие практики для VB и Разработчиков C# ".

Это очень подробно и затрагивает все существенные темы, Это только дает Вам правило, но также и объясняет причину позади правила, и даже предоставляет антиправило, где могло быть две противостоящих лучших практики. Единственный недостаток - то, что это было записано для.NET 1,1 разработчика.

10
задан Special Touch 11 November 2009 в 17:45
поделиться

3 ответа

Что будет делать удаление объекта Thread ? «Ресурс» в этом случае имеет свою естественную очистку - чистовую обработку резьбы. Обратите внимание, что также отсутствует чувство владения ... внутри исполняемого потока вы всегда можете использовать Thread.CurrentThread , так что только этот поток действительно сможет претендовать на какое-либо владение.

В основном я думаю Поток - это несколько необычный случай - у базового ресурса есть время жизни, но это не то, что нужно очищать явно.

8
ответ дан 4 December 2019 в 00:25
поделиться

Вероятно, это потому, что вы не можете удалить потока. Вместо этого вы можете попросить его умереть, используя Abort () или что-то подобное.

3
ответ дан 4 December 2019 в 00:25
поделиться

Это своего рода вопрос проектирования, поэтому любой, кто не участвовал в создании этого аспекта .NET, может только строить догадки. При этом это сообщение в блоге дает хорошее замечание:

... реализация IDisposable не будет иметь никакого значения, по крайней мере, в текущей реализации Thread. Я увеличил количество создаваемых потоков, и счетчик дескрипторов в какой-то момент уменьшился, поэтому есть какой-то механизм для их закрытия

Потоки естественным образом очищаются за собой, поэтому они не являются ресурсом, которым нужно управлять в обычном режиме. смысл.

1
ответ дан 4 December 2019 в 00:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: