I cannot think of any benefits to having multiple mains. It's not like a lot of work is done in it. It's there mostly for execution control flow purposes. The only place that I have seen something like multiple mains is in a computer virus. The basic idea behind those is to spawn another main(ok so, it's a proc, whatever) when something kills or suspends the other.
Since net4 arrived in my dev-workflow, I have stopped using threads anyways. The Task Parallel Library works much better, by being more difficult to screw-up and more performant.
I'm sorry if it seemed like I specifically desired multiple "main()" functions, I was referring to what main actually does, as an execution entry point for the whole program to follow in its steed.
I want a way for one core to start one part of a program whilst another core can execute a different path, working towards a common goal using the memory address the OS gives the program.
lol and yes, the TPL would indeed be a much more sane way to go for the runtime to manage your thread pool's usage, I for one have only explored the PPL for usage of C++0x features & Lambda's along with interfacing with Intel's TBB for cross platform STL style code.
Rick Molloy is THE MAN along with Erik, they're both really inspiring.