我正在使用新的Data Access in Universal Windows Platform。我能够检索数据,但问题是因为检索代码本质上是同步的,所以Windows应用程序变得无响应,直到检索到完整列表。由于其绑定为ObservableCollection
,因此只要检索到列表,UI就会更新。
public List<Brand> retrieveBrands()
{
List<Brand> brandList = new List<Brand>();
using (var db = new CarDataContext())
{
brandList = db.Brands.ToList();
}
return brandList;
}
但是现在因为检索列表之间存在时间间隔,因此UI几秒钟内无响应。 如何使这个检索异步/使我的方法异步,以便一旦检索到列表,我就能得到一个任务。完成的通知和UI仍然是响应。
我的问题几乎与问here的问题相似,但由于没有答案,我发帖提问。
答案 0 :(得分:1)
您可以尝试这样的事情
public Task<List<Brand>> retrieveBrands()
{
return Task.Run(()=>
{
List<Brand> brandList = new List<Brand>();
sing (var db = new CarDataContext())
{
brandList = db.Brands.ToList();
}
return brandList;
});
}