.Net may or may not be an option here, not sure. The main dll has to stay MFC, performance concerns as well as concerns with how easy the code would be to disassemble. The part which does threading however is separate from that and converting it to .Net might work if there’s no way to get to using an I7 with MFC code.
The Background Worker is the new preferred way from what I was reading. With respect to thread dispatch on individual processor cores, you should be able see processor demand curves in perfmon?
I have a multi-threaded c# application I’ve been hacking on for several months, and several things I have noticed in VS 2010 is that debugging is definitely not linear. In fact, the only way I have been able to effectively debug is with log statements. I had to do use lock on a readonly object to single thread through the logger, but it seems to be effective, more or less. At least I’ve been able to generate the application, thank goodness...