Windows Phone 8.1延迟

Sop*_*man 0 c# xaml windows-phone-8.1

我试图在Windows手机中播放声音后实现1200毫秒的延迟,但延迟不起作用.

我使用以下代码:

bleep.Play(); // play bleep
System.Threading.Tasks.Task.Delay(1100).Wait();
this.Frame.Navigate(typeof(MainPage.ItemPage));
Run Code Online (Sandbox Code Playgroud)

我被告知不要使用System.Threading.

await函数需要异步,并且在尝试实现时会让我感到头痛.

还有什么想法我还能用吗?

Pet*_*SFT 5

您应该使用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));
}
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用*async Task*而不是*async void*,除非它是*fire-forget*event. (2认同)