所以我有一个Helper
类用于使用EntityFramework访问数据库。在类中,我所拥有的主要是用于从DB检索数据的异步方法。方法如下所示:
public class Helper
{
private static Context db = new Context();
public async static Task<List<Something>> getSomethingAll()
{
var a = db.SomethingList.ToListAsync();
return await a.ConfigureAwait(false);
}
.... //lots of other methods coming here
}
然后在我的WPF窗口代码隐藏中,我调用这样的方法:
List<Something> sthList= Helper.getSomethingAll().Result; //good concept?
//use of sthList...
我知道这不是使用异步方法的最佳方法。那么我应该在我的例子中做些什么来使它尽可能有用呢?或者这可能是好的用法?
答案 0 :(得分:2)
这样的事情:
var sthList = await Helper.GetSomethingAllAsync();
//use of sthList...
这将使你回到正确的线程状态以恢复工作(例如,你可以触摸UI而不会爆炸),并且可能会非常僵局({{1}如果使用不当,可以做到这一点。)