So now we have a discussion on multi core/threaded stuff, I want to get a little more into the details.

My engine currently has support for more than one thread.

No my question is: how do I set my threads to a different core and how can I schedule everything? For multi threading I currently use critical sections.
My threads also need to switch from core at runtime. Is that possible or should I just define one thread per core?