Простой способ выполнить метод после заданной задержки?

Есть ли простой способ выполнить метод после заданной задержки, как в iOS из коробки?

На iPhone я бы сделал это:

[self performSelector: @selector (connectSensor) withObject: nil afterDelay: 2.5];

Затем он запланирует выполнение метода connectSensor в основном потоке (поток пользовательского интерфейса) через 2,5 секунды. А поскольку он автоматически планируется в основном потоке, вам не нужно беспокоиться о проблемах с перекрестными потоками. (Существует также версия performSelectorOnBackground )

Как мне сделать это правильно в WP7?

В настоящее время я делаю это с помощью таймера, но не уверен, что это хорошее решение.

    private Timer timer;
    private void DoSomethingAfterDaly()
    {
        // ... do something here

        timer = new Timer( (o) => Deployment.Current.Dispatcher.BeginInvoke(() => NavigationService.GoBack()), null, 2500, Timeout.Infinite);            
    } 

Как это можно было инкапсулировать в метод расширения, чтобы я мог просто вызвать this.Perform (MyMethod, null, 2500); ?

7
задан Buju 18 January 2011 в 16:09
поделиться