title: creating new windows in a threadsafe manner
body: <p>I am using signalR to push messages up to server and down to specific clients.  </p>
  
  <p>When I send a message, the receiving client is sent a ReceiveMessage function call from my signalR server, which maps to a static class function in my app.  The static class then tries to do <code>new Chat()</code> (my messaging window class) to open a message window on the receiving side.  </p>
  
  <p>This throws <code>calling thread must be STA, because many UI components require this.</code></p>
  
  <p>I have worked with delegates before on simple form elements (like changing a textbox), but I don't understand how to apply that in this situation.  When I read about <code>Invoke</code>, it is called on a form object of some sort, which does not exist in my situation?  </p>
  
  <p>TLDR; how do I create and show a new instance of a form from a static class function call</p>