En WPF debido a las complejidades de cómo se actualiza la interfaz, a veces tengo que realizar acciones después de un breve retraso.¿Invocación retrasada del envío?
Actualmente estoy haciendo esto simplemente por: (?)
var dt = new DispatcherTimer(DispatcherPriority.Send);
dt.Tick += (s, e) =>
{
dt.Stop();
//DoStuff
};
dt.Interval = TimeSpan.FromMilliseconds(200);
dt.Start();
Pero es tanto un poco feo y tal vez demasiado trabajo para crear un nuevo contador de tiempo cada vez Cuál es la mejor desde el punto de vista de rendimiento para hacerlo, es decir, ejecutar más rápidamente? Y lo que es una buena manera de reescribir el código anterior en algo así como:
this.Dispatcher.BeginInvoke(new Action(delegate()
{
//DoStuff
}), DispatcherPriority.Send,TimeSpan.FromMilliseconds(200));
Dónde Timespan es el retraso, Gracias por cualquier entrada :)
En lugar de esperar a que algo antes de actualizar, no puedes mover la responsabilidad para actualizar la interfaz de usuario a lo que está esperando? Esto evitaría temporizadores. – x0n
desafortunadamente no, es algo raro como actualizar la interfaz de usuario y esconderla después de un breve retraso para que la ventana se actualice cuando se muestre de nuevo – Homde