[英]In WinRT, why does calling Task.Result from a synchronous context block my app
我參與了將一些代碼移植到Windows應用商店庫的工作。 對於我們而言,有時可以等待異步操作的結果再繼續操作會很方便。 我以為我們有了Task的Result屬性的答案,但是由於某種原因,它使我的應用程序崩潰了。
我制作了一個快速的Windows Store測試應用程序,如下所示:
public MainPage()
{
this.InitializeComponent();
MyTextBox.Text = "0";
var a = ReturnIntMax();
MyTextBox.Text = "1";
MyTextBox.Text = a.Result.ToString();
}
public async Task<int> ReturnIntMax()
{
await Task.Delay(1000);
return 5;
}
據我了解Result屬性,它應該起作用,所以我希望有人可以告訴我發生了什么事。 我對為什么這是不好的設計不感興趣。 我們正在處理大量的通訊流量,我們不允許沖突。 如有必要,我們可以解決此問題,但首先我想了解為什么它不起作用。 如果只是不支持從同步上下文中調用Result,我會認為這會給我一個編譯器錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.