В WPF из-за тонкостей, связанных с обновлением интерфейса, мне иногда приходится выполнять действия после короткой задержки.
В настоящее время я делаю это просто:
var dt = new DispatcherTimer(DispatcherPriority.Send);
dt.Tick += (s, e) =>
{
dt.Stop();
//DoStuff
};
dt.Interval = TimeSpan.FromMilliseconds(200);
dt.Start();
Но это и немного уродливое и, возможно, слишком много накладных расходов, чтобы каждый раз создавать новый таймер (?) Что лучше всего с точки зрения производительности, чтобы сделать это, т.е. выполнить наиболее оперативно? И какой хороший способ переписать вышеуказанный код во что-то вроде:
this.Dispatcher.BeginInvoke(new Action(delegate()
{
//DoStuff
}), DispatcherPriority.Send,TimeSpan.FromMilliseconds(200));
Где Timespan - это задержка, спасибо за любой вход:)