延迟 windows phone 8.1
Delay in windows phone 8.1
我试图在 windows phone 中播放声音后实现 1200 毫秒延迟,但延迟不起作用。
我正在使用以下代码:
bleep.Play(); // play bleep
System.Threading.Tasks.Task.Delay(1100).Wait();
this.Frame.Navigate(typeof(MainPage.ItemPage));
有人建议我不要使用 System.Threading。
await 函数需要异步,这让我在尝试实现时有些头疼。
还有什么我可以使用的想法吗?
您应该使用await
关键字等待任务完成; Wait()
应该很少使用,并且要格外小心,因为它会使您的应用显得无响应甚至导致死锁。
// 'async' keyword is important!
async Task foo()
{
bleep.Play(); // play bleep
await System.Threading.Tasks.Task.Delay(1100);
this.Frame.Navigate(typeof(MainPage.ItemPage));
}
如果你想synchronous
延迟,那么你可以试试:
Thread.Sleep(1200);
MessageBox.Show("1.2 sec delayed");
如果asynchronous
延迟,您可以使用:
Task t = new Task(() => { Thread.Sleep(1200); });
t.Start();
MessageBox.Show("1.2 sec delayed");
注意:不要忘记添加以下内容 namespaces
:
using System.Threading.Tasks; // for Task class
using System.Threading; // for Thread class
我试图在 windows phone 中播放声音后实现 1200 毫秒延迟,但延迟不起作用。
我正在使用以下代码:
bleep.Play(); // play bleep
System.Threading.Tasks.Task.Delay(1100).Wait();
this.Frame.Navigate(typeof(MainPage.ItemPage));
有人建议我不要使用 System.Threading。
await 函数需要异步,这让我在尝试实现时有些头疼。
还有什么我可以使用的想法吗?
您应该使用await
关键字等待任务完成; Wait()
应该很少使用,并且要格外小心,因为它会使您的应用显得无响应甚至导致死锁。
// 'async' keyword is important!
async Task foo()
{
bleep.Play(); // play bleep
await System.Threading.Tasks.Task.Delay(1100);
this.Frame.Navigate(typeof(MainPage.ItemPage));
}
如果你想synchronous
延迟,那么你可以试试:
Thread.Sleep(1200);
MessageBox.Show("1.2 sec delayed");
如果asynchronous
延迟,您可以使用:
Task t = new Task(() => { Thread.Sleep(1200); });
t.Start();
MessageBox.Show("1.2 sec delayed");
注意:不要忘记添加以下内容 namespaces
:
using System.Threading.Tasks; // for Task class
using System.Threading; // for Thread class