ASP.NET is multi-threaded.
So a new thread is used to handle each page request.
It all depends on the workload of a given processor if the new thread is assigned to a different CPU/Core.
But all of your cores are used by ASP.NET. So your app is never restricted to one CPU.
But the real question is: what is your goal?
1] Are you just afraid that your long running operations will hang ASP.NET?
2] Or do you wish to reduce the time it takes for your script to execute?
If you make your long-running-page asynchronous, then each thread will be
returned immediately to the ASP.NET thread pool, which drastically increases
the performance of your site. This solves problem 1.
Read up on the parallel task library extensions to see how you can more effectively use all cores to handle long running tasks. Most tasks can be divided into sub tasks which
can run in parallel. This solves problem 2.
Hope this helps.