Попробуйте поискать руководства «Параллельное расширение библиотеки».
Если вы используете IParallelEnumerable, вы сможете просто начать обработку, например:
var result = source.AsParallel().Where(s => IsSomeCondition(s));
var result = source.AsParallel().Select(s => new Something(s));
Должен быть метод для параллельного и параллельного foreach.