¿Es esta una manera válida de usar un Lambda como un Manejador de eventos? Me parece que el controlador se ha eliminado correctamente y que el recolector de basura debería limpiarlo. Sin embargo, no he visto a nadie más hacerlo de esta manera, así que pensé que sería mejor que lo comprobara.¿Obtendrá esto basura recolectada?
En la misma línea, ¿cuál es la mejor herramienta (preferiblemente gratuita) para utilizar para comprobar si esto es, de hecho, basura recogida?
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(10);
EventHandler callback = null;
callback = (s, e) =>
{
timer.Stop();
timer.Tick -= callback;
};
timer.Tick += callback;
timer.Start();
Para cualquier persona interesada, creé una prueba que ejecutó el código anterior 1M veces. El uso de la memoria se mantuvo incluso en todo momento. – herbrandson