我有两个任务需要运行,它们都是单独的任务,需要一些时间才能运行。
我不想使用一个接一个地运行它们。
两个任务都返回不同类型的列表。
假设第一个列表为 Book 类型,我的列表为bkList,第二个列表为 Song 类型,称为sgList。
Task[] tasks = new Task[2];
tasks[0] = Task.Factory.StartNew(SomeProcess);
tasks[1] = Task.Factory.StartNew(AnotherProcess);
try
{
Task.WaitAll(tasks);
// do stuff
}
catch(AggregateException ex)
{
ExceptionDispatchInfo.Capture(ex.InnerException).Throw();
}
如何确保两个任务都已完成?我认为我的上述代码有效,因为它可以等待两个任务都运行。但是我不知道如何获取返回的列表?即
List<Book> bkList = tasks[0].Result;
List<Song> sgList = tasks[1].Result;
更新
对不起,我应该说上面的两行是我猜的答案。但是,当我键入 Result 属性时,就没有此属性。
任务不包含结果的定义