小编Nig*_*gor的帖子

无法从任务列表中获取结果

我有这个async函数返回一个Task

public async Task<SettingModel> GetSetting(string key)
{
    var rootPath = _hostingEnvironment.ContentRootPath;
    using (StreamReader r = new StreamReader(rootPath + key + "settings.json"))
    {
        string json = await r.ReadToEndAsync();
        var settings = JsonConvert.DeserializeObject<SettingModel>(json);
        return settings;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想获得所有设置,然后等到所有设置完成后才这样

public async Task GetData(List<string> keys)
{
    var taskList = new List<Task>();
    foreach(var key in keys)
    {
        taskList.Add(GetSetting(key));
    }

    await Task.WhenAll(taskList.ToList());

    foreach (var task in taskList)
    {
        task.Result // here its not working. The task don't have a result :(
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# async-await

5
推荐指数
1
解决办法
1751
查看次数

标签 统计

async-await ×1

c# ×1