Depending on the situation (apply profiling or state your target to let us know whether operation is IO/CPU-bound) you may use LINQ or PLINQ or a Producer-Consumer Pattern.
For IO-bound operations LINQ shall perform faster. For CPU bound, i prefer to use Producer-Consumer pattern.