延迟 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