【发布时间】:2012-11-23 11:30:41
【问题描述】:
我正在尝试实现一个将在其中使用 Sqlite 等待的属性:
public int ID {
get
{
if (_id != null)
{
return _id;
}
if (string.IsNullOrEmpty(ImageName))
{
return -1;
}
var query = CurrentConnection.Table<Image>().Where(i => i.ImageName == ImageName);
var result = await query.ToListAsync();
...other code
但是,由于属性未设置为 await(尝试过,不起作用),我不能在属性中使用 await。
除了使用方法而不是属性之外,还有什么方法可以解决这个问题?
【问题讨论】:
-
只需使用同步版本。
-
你有一个递归错误。应该是
if(_id != null) return _id;而不是ID -
我希望属性小而快。如果你问我,任何涉及等待的事情都应该有一个方法。只是说...
-
如果您有一个名为
blah的Task<T>,您可以致电blah.GetAwaiter().GetResult()。 -- 但这会阻塞当前线程 -- 除非它是您正在等待的超快速代码,否则我会强烈考虑其他选择。
标签: c# .net async-await c#-5.0