我正在爲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