我正在为Windows Phone 8.1生成应用程序。当用户导航到应用程序的某个页面时,会调用OnNavigatedTo()方法中的一段代码。这里是什么样子:Windows Phone:Task.Delay不工作/挂在页面上的应用程序
protected override void OnNavigatedTo(NavigationEventArgs e)
{
while (!hasUserWonGame)
{
Task.Delay(3000);
//do stuff...
Task.Delay(6000);
//do more stuff...
Task.Delay(2000);
//do more stuff...
}
}
调试时,有一次我点击了按钮导航到该页面时,应用程序只需在该页面被绞死,甚至没有导航到该页面。评论while
封锁,应用程序工作正常。如果您在以外的区域添加任何语句,它也可以正常工作。然而,在循环的最小部分发表评论,即使使用Task.Delay
,也会让我陷入(基本上)在while (true)
循环中。
问题是,用户甚至无法导航到页面,因此无法将hasUserWonGame
更改为true。为什么Task.Delay()
无法工作,并让应用程序继续导航到页面?
我最近了解到'async'和'await',其实我是(直到现在)依靠Visual Studio来突出显示绿色波浪线的异步方法......我想我已经吸取了教训。 – 2015-02-09 02:31:18