[英]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.