如何解决为什么我的任务不允许我在foreach循环中访问结果
我正在创建一个Task数组,然后尝试访问结果,但是收到一条错误消息,指出Task不包含Result的定义,即使我在调试会话中将鼠标悬停在Task上时也看到了该定义,并且可以在foreach循环之外访问它。我知道我很可能会错过一些愚蠢的东西,但是我已经搜寻了类似的问题,而且似乎找不到答案。为了清楚起见,我省去了与实际任务处理无关的代码。
Task<DatabaseRecord>[] tasks = new Task<DatabaseRecord>[rows.Rows.Count];
Func<DatabaseRecord> function = new Func<DatabaseRecord>(() =>
getCensusResultLocalTaskAsync(newRecord));
tasks[i] = Task.Factory.StartNew<DatabaseRecord>(function);
Task.WaitAll(tasks);
foreach (Task task in tasks)
{
**//hovering over task here reveals a value for Result= "DatabaseRecord";**
var test = task.Result; //but here I get 'Task' does not contain a definition for 'Result'...
}
//Accessing it directly outside a foreach works fine though
var record = task[1].Result //yields correct result
public DatabaseRecord getCensusResultLocalTaskAsync(object c)
{
DatabaseRecord currentRecord = (DatabaseRecord)c;
//processing to populate currentRecord
return currentRecord;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。