我的代碼塊:任務<T>凍結UI線程
Dispatcher.BeginInvoke(() => {
var Users = GetUsers().Result;
// proceed...
}
private Task<List<User>> GetUsers()
{
var tcs = new TaskCompletionSource<List<User>>();
wbclient.DownloadStringCompleted += (o, e) => {
if (e.Error == null)
tcs.SetResult(JsonConvert.DeserializeObject<List<User>>(e.Result));
else
tcs.TrySetException(e.Error);
};
wbclient.DownloadStringAsync(someUri);
return tcs.Task;
}
我想,然後再繼續讓所有的用戶。所以我在調度員中調用GetUser
方法。我只想等到DownloadStringCompleted
事件發生,然後返回。但通過上面的代碼,UI會凍結。任何幫助表示讚賞。
注:
我使用windows-phone 7
,不支持async
await
不,不。沒有。 Dispatcher **強制**它在UI線程中運行。 –
@newStackExchangeInstance仍然UI凍結! –
@AshokDamani:是的,因爲你正在使用'任務 .Result'。閱讀該財產的文檔。 –