2010-08-26 80 views
1

我尝试过程中使用新的.NET 4.0任务并行库并行编程C#4.0 Task.StartNew

inputList1 is List<CustomObject> 

inputList2 is List<DateTime> 

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

inputList2是在两个呼叫(它是一个只读表)普通2个独立的任务。

我试着用下面的代码,但一直得到例外

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

有人能指导我关于如何传递参数,以及如何使任务并行库。

回答

3

看起来你只是想要GetDoubleListing()GetAnotherListing()调用并行完成。 StartNew()的重载要求代表。由于参数没有变化,您可以使用类似lambda表达式的呼叫:

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