In WPF a causa delle complessità relative all'aggiornamento dell'interfaccia, a volte devo eseguire azioni dopo un breve intervallo.Inoltro invio ritardato?
Attualmente sto facendo questo semplicemente: (?)
var dt = new DispatcherTimer(DispatcherPriority.Send);
dt.Tick += (s, e) =>
{
dt.Stop();
//DoStuff
};
dt.Interval = TimeSpan.FromMilliseconds(200);
dt.Start();
Ma è sia un po 'brutto e forse troppo in alto per creare un nuovo timer ogni volta Qual è il meglio da un punto di vista delle prestazioni a fallo, cioè esegui più prontamente? E ciò che è buon modo per riscrivere il codice di cui sopra in qualcosa di simile:
this.Dispatcher.BeginInvoke(new Action(delegate()
{
//DoStuff
}), DispatcherPriority.Send,TimeSpan.FromMilliseconds(200));
Dove Timespan è il ritardo, Grazie per ogni ingresso :)
Invece di aspettare che qualcosa prima di aggiornare, non puoi spostare la responsabilità per aggiornare l'interfaccia utente alla cosa che stai aspettando? Questo eviterebbe i timer. – x0n
sfortunatamente no, sono cose da hacky come aggiornare l'interfaccia utente e nasconderlo dopo un breve ritardo in modo che la finestra venga aggiornata quando viene mostrata di nuovo – Homde