<p>From the .net 4.0 previews I have read until now there has been lots of talk on how the next .net version will handle and use cpus with multiple cores. We will have additions like plinq that will help us make use of multiple cores. My question is why should I have to bother my mind with handling multiple cores when all I want is to make my application run faster. Why can't there be a kind of virtual cpu layer that exposes all cores as 1 core to my application? </p>

<p>Edit:
I would like to rephrase my question to avoid misunderstanding, 
Could there be made a software that would expose a virtual thread to my application that would be 10 times faster because underlaying it was using 10 cores. I do not want to have different threads doing things in paralell, I just want my one thread running faster. I guess this is not a big problem today but soon we'll have 80 core processors to play with and then I would feel a bit shorthanded only using 1 of them.</p>

You are misunderstanding the point of multiple cores in the first place.
With more than one core, you can perform two or more different operations in parallel (at the same time).  This is called threading.
This can't be done automatically because the "normal" programs you write are linear.  You can't easily convert one series of instructions into several series of instructions without taking into consideration side effects.
GPU's (specialized CPU's on graphics cards), for example, may contain hundreds of "cores" (stream processors) which operate in parallel to render the pixels on your screen.  With only one processor, you'd have to render pixel-by-pixel on a super-fast processor to achieve the same effect.
The reason CPU manufacturers moved to more than one core was because manufacturing a single core at higher speeds was getting more difficult and expensive, and that a single core would suck up more power and produce more heat than two cores at half the speed (basically; this isn't true in all cases).