Windows phone 7 延迟n秒后执行一次操作,WP7 C#

Windows phone 7 延迟n秒后执行一次操作,WP7 C#,windows-phone-7,Windows Phone 7,我正在寻找一种简单的方法,在延迟n秒后执行操作/方法。我发现了一些例子,但它们似乎过于复杂,因为在我的上一个平台iOS上,它只是 [self performSelector:@selector(methodname) withDelay:3]; 任何提示或代码片段都将不胜感激 DispatcherTimer DelayedTimer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(5) }; DelayedTimer.

我正在寻找一种简单的方法,在延迟n秒后执行操作/方法。我发现了一些例子,但它们似乎过于复杂,因为在我的上一个平台iOS上,它只是

[self performSelector:@selector(methodname) withDelay:3];
任何提示或代码片段都将不胜感激

DispatcherTimer DelayedTimer = new DispatcherTimer()
{
    Interval = TimeSpan.FromSeconds(5)
};
DelayedTimer.Tick += (s, e) =>
{
    //perform action
    DelayedTimer.Stop();
}
DelayedTimer.Start();
请注意,您在这里所做的是中断UI线程,而不是在单独的线程上运行任何东西。它不适合任何长时间运行和cpu密集型的应用,而是需要定期执行的应用。时钟UI更新就是一个完美的例子

此外,计时器也不能保证在时间间隔出现时准确执行,但可以保证在时间间隔出现之前不会执行。这是因为操作与其他操作一样放置在调度程序队列上。调度程序操作的执行时间取决于队列中的其他作业及其优先级

如果要使用计时器执行后台任务,请使用 而不是调度员

请注意,您在这里所做的是中断UI线程,而不是在单独的线程上运行任何东西。它不适合任何长时间运行和cpu密集型的应用,而是需要定期执行的应用。时钟UI更新就是一个完美的例子

此外,计时器也不能保证在时间间隔出现时准确执行,但可以保证在时间间隔出现之前不会执行。这是因为操作与其他操作一样放置在调度程序队列上。调度程序操作的执行时间取决于队列中的其他作业及其优先级

如果要使用计时器执行后台任务,请使用 而不是调度员


您还可以使用
Microsoft.Phone.Reactive
中的
调度器.Dispatcher

Scheduler.Dispatcher.Schedule(MethodName, TimeSpan.FromSeconds(5));

private void MethodName()
{
    // This happens 5 seconds later (on the UI thread)
}

您还可以使用Microsoft.Phone.Responsive中的
调度器.Dispatcher

Scheduler.Dispatcher.Schedule(MethodName, TimeSpan.FromSeconds(5));

private void MethodName()
{
    // This happens 5 seconds later (on the UI thread)
}

对于Windows Phone 8,您可以使用

await Task.Delay(milliseconds);

对于Windows Phone 8,您可以使用

await Task.Delay(milliseconds);