Delayed Dispatch Invoke?

В 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 - это задержка, спасибо за любой ввод :)

16
задан Homde 18 September 2010 в 08:00
поделиться