Fondamentalmente voglio che un oggetto del timer del dispatcher venga eseguito solo una volta.tick DispatcherTimer una volta
così ho il codice di base:
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 4);
dispatcherTimer.Start();
poi dentro l'evento click:
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
this.Visibility = System.Windows.Visibility.Visible;
// Now stop timer execution.. or kill the timer object
}
Come posso fermare il timer o uccidere l'oggetto dopo questa esecuzione?
Impossibile il garbage collector sbarazzarsi del timer prima viene generato l'evento? – Cameron
@ Cameron, no perché il timer ora ha un riferimento alla funzione anonima, quindi non può essere raccolto. –
Giusto, ma chi altro ha un riferimento a quella funzione anonima? Non potrebbe * essere * raccolto? – Cameron