簡體   English   中英

異步方法在Windows Phone上似乎不起作用

[英]Async methods doesn't seem to work on Windows Phone

我有以下代碼(WPF,Windows Phone 8.1):

HttpClient client = new HttpClient();
var httpResult = client.GetAsync(feed.Url, ct);
string feedData = await httpResult.Result.Content.ReadAsStringAsync();

var sf = new SyndicationFeed();
sf.Load(feedData);

我正在嘗試調試此代碼。 但是,在行之后:

string feedData = await httpResult.Result.Content.ReadAsStringAsync();

調試器似乎讓應用程序自己運行,並且永遠不會到達下一行。 這是為什么? 難道我做錯了什么?

取決於您是調用結果還是在上游某處等待任務,這可能導致死鎖,如Stephen Cleary的博客文章中所述

通過等待client.GetAsync()緩解這種情況,並在可能的情況下使用ConfigureAwait最小化死鎖的可能性:

HttpClient client = new HttpClient();
var httpResult = await client.GetAsync(feed.Url, ct).ConfigureAwait(false);
string feedData = await httpResult.Content.ReadAsStringAsync().ConfigureAwait(false);

var sf = new SyndicationFeed();
sf.Load(feedData)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM