【发布时间】:2014-07-29 12:02:34
【问题描述】:
我需要做一个 RestRequest 并获取一些 JSON,我不确定我的方法是否真的是异步的,因为当我使用这个方法时,我的 UI 仍然有一点冻结。
public async Task<List<MyObject>> Load()
{
var tcs = new TaskCompletionSource<List<Myobject>>();
var client = new RestSharp.RestClient("https://exampleapi.com");
client.Authenticator = OAuth1Authenticator.ForProtectedResource(
[...]);
var request = new RestSharp.RestRequest("examp.json", Method.GET);
client.ExecuteAsync(request, response =>
{
if (response.StatusCode == HttpStatusCode.OK)
{
List_ = new List<MyObject>();
List_ = JsonConvert.DeserializeObject<List<MyObject>>(response.Content);
tcs.SetResult(List_);
}
else
{
MessageBox.Show("Error");
}
});
return await tcs.Task;
}
专门针对这行代码:
List_ = JsonConvert.DeserializeObject<List<MyObject>>(response.Content);
真的是异步的吗?因为它似乎挡住了 UI。你能告诉我如何使这个函数正确异步吗?
【问题讨论】:
标签: c# .net json windows-phone-8 asynchronous