Параллельное программирование C # 4.0 Task.StartNew - PullRequest
1 голос
/ 26 августа 2010

Я пытаюсь обработать 2 независимые задачи с помощью новой параллельной библиотеки задач .NET 4.0

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 Ответ

3 голосов
/ 26 августа 2010

Похоже, вы просто хотите, чтобы вызовы GetDoubleListing() и GetAnotherListing() выполнялись параллельно. Перегрузки для StartNew() требуют делегатов. Поскольку параметры не меняются, вы можете совершать звонки с помощью лямбд, например:

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