Unreferenced Thread объект утилизации - PullRequest
2 голосов
/ 11 марта 2010

Если я использую нить, как это:

void foo()
{
new Thread().Start();
}

поскольку объект Thread не указан, будет ли он удален GC до выполнения назначенной работы?

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

От MSDN

Нет необходимости сохранять ссылка на объект Thread, как только вы начал тему Нить продолжает выполняться, пока поток процедура завершена.


Класс System.Threading.Thread действительно предназначен только для бухгалтерии / управления. Это не фактический механизм, который создает / поддерживает потоки. Это управляется средой выполнения и зависит от реализации CLI (например, реализация Mono может существенно отличаться в управлении потоками.)

2 голосов
/ 11 марта 2010

Поток должен оставаться в живых, пока не вернутся его методы.

Извлечение: Что мешает собиранию потока в C #?

...