我的代码块:
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
事件发生然后返回。但是使用上面的代码,用户界面会冻结。任何帮助表示赞赏。
笔记:
我正在使用windows-phone 7
,不支持async
await