Я наткнулся на вопрос интервью, на который я не знал ответа (небольшая помощь :))
ну это что-то вроде:
Class SomeClass : IDisposable
{
public void Dispose()
{
while(true)
{
}
}
~SomeClass()
{
Dispose();
}
}
1) Завершается ли объект, когда на него больше не ссылаются после следующего ГХ? Мой ответ был НЕТ, потому что поток завершения будет зависать в бесконечном цикле.
2) Что можно сделать в Dispose, чтобы завершить финализацию и сколько раз цикл будет продолжаться до удаления объекта (без учета времени, которое он проведет в следующем поколении)
Мне не совсем понятен точный вопрос (2). Мне не хватило времени ...
Не зная ответа, я поставил статический счетчик, который доходит до 3 и вызывает перерыв и сообщает 3
что технически будет работать :), но это не ответ
Я предполагаю, что это как-то связано с GC.SupressFinalize ()?
может быть, вызов GC.SupressFinalize () перед входом в цикл?
Есть ли какие-либо идеи, если не в ответе на неясный вопрос, больше о том, к чему они могли стремиться?