繁体   English   中英

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关键字来等待任务完成。 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM