I want to implement such logic in my asp-net-mvc application:
user clicks a button
server executes some time-consuming logic in ~15 threads (i get data from really slow independent sources)
when all work is done, server merges the results and passes it back to user
If you're using .Net 4, I would even recommend looking at the parallel namespaces. They make this even simpler and do a better job of utilizing all your CPU cores.
I would also look at offloading this from your main web app altogether. Having a separate set of services or a message queue to handle this long running request will let you scale a lot more easily and will allow your web app to worry about servicing page requests, not performing long running logic. Google up something like "iis long running request" to get started.