[英]Can't get result from task list
我有这个返回Task
async
函数
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;
}
}
现在我想获得所有设置,然后等到所有设置完成后才这样
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 :(
}
}
如何从任务中获取数据?
将taskList
更改为List<Task<SettingModel>>
,也不要使用task.Result
来避免死锁 。 你的代码应该是这样的:
var taskList = new List<Task<SettingModel>>();
foreach(var key in keys)
{
taskList.Add(GetSetting(key));
}
var result = await Task.WhenAll(taskList.ToList()).ConfigureAwait(false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.