Je souhaite fondamentalement qu'un objet timer de dispatcher ne s'exécute qu'une seule fois.DispatcherTimer cocher une fois
J'ai donc le code de base:
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 4);
dispatcherTimer.Start();
Puis dans l'événement click:
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
this.Visibility = System.Windows.Visibility.Visible;
// Now stop timer execution.. or kill the timer object
}
Comment puis-je arrêter ou pour tuer l'objet après cette exécution?
Impossible le garbage collector se débarrasser de la minuterie avant l'événement se déclenche? – Cameron
@Cameron, non parce que le temporisateur a maintenant une référence à la fonction anonyme, donc il ne peut pas être collecté. –
Bien, mais qui d'autre a une référence à cette fonction anonyme? Couldnt * that * être collecté aussi? – Cameron