me encontré con una pregunta de la entrevista, que yo no sabía la respuesta (poca ayuda :)) así se manifestó algo por el estilo:Finalizer atrapado en un bucle infinito
Class SomeClass : IDisposable
{
public void Dispose()
{
while(true)
{
}
}
~SomeClass()
{
Dispose();
}
}
1) se pone finalizó el objeto cuando ya no se hace referencia después del próximo GC? Mi respuesta fue NO, porque el hilo de finalización se bloqueará en el ciclo infinito.
2) ¿Qué se podría hacer en el Desechar para poner fin a la finalización y el número de veces continuará el bucle antes de que se elimina el objeto de (a cabo tomando en cuenta el tiempo que pasará en la próxima generación)
no soy particularmente claro de la pregunta exacta (2) .I poco acabó el tiempo ...
al no conocer la respuesta que poner un contador estático que llega a 3 y las llamadas se rompen y afirmó 3 que técnicamente sería trabajo :), pero esa no es la respuesta
Supongo que tiene algo que ver con GC .SupressFinalize()? quizás llamando a GC.SupressFinalize() antes de ingresar al ciclo?
ideas, si no en la respuesta a la pregunta poco clara, más en cuanto a lo que podrían haber estado buscando?
por cualquier medio se trata de una pregunta de la entrevista curioso - mientras que en conocimiento de la profundidad sobre el GC es un área válida para meterse en general, no sé qué le mostrará al entrevistador cualquier respuesta a esta pregunta en particular (además del hecho de que usted sabe que hay un solo hilo que realiza llamadas de finalización) – BrokenGlass