【问题标题】:Get TResult from Task<TResult>从任务<TResult> 获取结果
【发布时间】:2015-04-03 19:05:59
【问题描述】:

我在使用异步和任务时遇到问题。

我有这个功能:

public async Task<List> Read(int id)
    {
        using (var db = new SmartFridgeContext())
        {
            var list = await db.Lists.Include(l => l.ListItems.Select(li => li.Item)).SingleOrDefaultAsync(l => l.ListId == id);
            return list;
        }
    }

尝试了几个小时,但我不知道如何从Task&lt;List&gt; 获得List。我的意思是,我想要返回“纯”列表,这样我就可以使用它了。

谁能帮忙?

编辑:

为了消除混淆,这是一个列表:

public class List
{
    public int ListId { get; set; }
    public string ListName { get; set; }

    public ICollection<ListItem> ListItems { get; set; } 

    public List(string listname)
    {
        ListName = listname;
    }
}

我知道我需要await Task,但是我需要声明函数async。如果我想在 Main() 中调用 Read(int id) 怎么办?

【问题讨论】:

  • 你需要await这个任务。

标签: c# task entity-framework-6


【解决方案1】:

您需要等待任务。

像这样使用它:

List myList = await Read(5);

如果你想在 Main 方法中使用它,编译器不会让你 await 方法。使用这个:

List myList = Read(5).Result;

【讨论】:

猜你喜欢
  • 2013-12-27
  • 2018-04-15
  • 1970-01-01
  • 2017-04-03
  • 2018-02-24
  • 2012-02-10
  • 1970-01-01
  • 2017-02-20
  • 2018-12-06
相关资源
最近更新 更多