title: Best Practices for asynchronous calls in MVP with WinForms
body: <p>I am using the Model-View-Presenter pattern in a WinForms project and one problem (among many) that I am having is when the form tells the presenter to do something and then is un-reactive while the presenter goes of to do it.  Fortunately in my project I have no problem with making all presenter calls asynchronous the question is how exactly to do it?</p>
  
  <p>Should each presenter call just be wrapped in a new thread creation?*</p>
  
  <pre><code>new Thread(()=&gt;_presenter.DoSomething()).Start();
  </code></pre>
  
  <p>What are best-practices here?  What if the user presses an "Abort what you're doing" button?  How do I abort gracefully?</p>
  
  <p>.* Realistically I would probably just use some sort of a proxy on the presenter to do this rather than putting the thread creation in the WinForm</p>