title: How can I call a function on a different thread using C++?
body: <p>I'm creating a component that will be consumed by other teams / products. The component allows client code to issue a set of commands, and internally these commands are executed on a worker thread - with a thread safe queue implementation where the commands are added to the queue on the callers (clients) thread, and removed / processed on the worker thread.</p>
  
  <p>I'd like to provide feedback from my component to the client code, in the form 'operation XYZ has completed'. I can easily do this via callbacks, however the callback is called on my worker thread - I'd like it to happen on the callers (clients) thread. <strong>How can I do this?</strong></p>
  
  <p>It's a cross platform component (Windows, Linux, OS X). Boost is available. My default development compiler is MS VC++ 2010, i.e. it's not C++11.</p>