并行编程C#4.0 Task.StartNew

时间:2010-08-26 04:41:50

标签: c# parallel-processing task

我正在尝试使用新的.NET 4.0任务并行库

处理2个独立的任务
inputList1 is List<CustomObject>

inputList2 is List<DateTime>

List<double> firstCall = GetDoubleListing(inputList1, inputList2); 
List<double> secondCall = GetAnotherListing(inputList3, inputList2); 

inputList2在两个调用中都很常见(它是一个只读列表)。

我尝试使用以下代码但仍然遇到异常

Task[] tsk = {
    Task<List<double>>.Factory.StartNew(GetDoubleListing(inputList1, inputList2)),
    Task<List<double>>.Factory.StartNew(GetAnotherListing(inputList3, inputList2));
};

有人可以指导我如何传递参数以及如何启用任务并行库。

1 个答案:

答案 0 :(得分:3)

您似乎只希望并行完成GetDoubleListing()GetAnotherListing()次呼叫。 StartNew()的重载需要委托。由于参数没有变化,您可以使用lambdas进行调用:

Task[] tsk =
{
    Task<List<double>>.Factory.StartNew(() => GetDoubleListing(inputList1, inputList2)),
    Task<List<double>>.Factory.StartNew(() => GetAnotherListing(inputList3, inputList2));
};