title: Marshall to a thread manually
body: <p>In WinForms, you have <code>Control.BeginInvoke()</code>, which means you can marshall a call from a background thread to the main UI thread that created the control's handle.</p>
  
  <p>This is fine, but how (in C#) would you do this between two "standard" threads?</p>
  
  <p>I have written a service bus, which has a processor thread to consume messages.  I want a timer to fire, that causes that processor thread to do something, rather than the code running in the timer's thread.</p>
  
  <p>Of course I can use thread syncronisation (<code>Monitor</code>/<code>using() {...}</code>) but wondered how it was done normally.</p>