Windows phone 7 延迟n秒后执行一次操作,WP7 C#
我正在寻找一种简单的方法,在延迟n秒后执行操作/方法。我发现了一些例子,但它们似乎过于复杂,因为在我的上一个平台iOS上,它只是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.
[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);