Есть ли простой способ выполнить метод после заданной задержки, как в 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);
?