Long running computationally expensive work? Break it into small jobs and have your job queue be a priority queue.
At that point you're correct regardless of if you've got one thread or many servicing the queue. And generally the best way to take advantage of multiple cores os to have it be totally agnostic to the number of cores it's running on like this anyway.