In my experience Tasks are very CPU intensive.
You can wrap parellels in a task.
Task t = Task.Run(() => { Parallel.For(x, x, new x() { x }, l => { //do work }); });
I haven't touched on this topic in a while but I feel like I remember that Tasks execute quicker than a Parallel loop, to the OP, I'd recommend taking both approaches and seeing what fits you best, also check the performance differences with dotMemory and dotTrace