使用多线程并从不同任务返回不同类型

时间:2018-07-18 15:19:33

标签: c# .net multithreading

我有两个任务需要运行,它们都是单独的任务,需要一些时间才能运行。

我不想使用一个接一个地运行它们。

两个任务都返回不同类型的列表。

假设第一个列表为 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 属性时,就没有此属性。

  

任务不包含结果的定义

0 个答案:

没有答案