title: Windows Form run external process without blocking UI
body: <p>I want to:</p>
  
  <ol>
  <li>Show a form with a textbox.</li>
  <li>Run an external program (notepad.exe for ease of example).</li>
  <li>Continue to allow the user to enter data into the form textbox whilst notepad is running.</li>
  <li>Run some more (continue) native form code when notepad closes. This will update the form, amongst other things.</li>
  </ol>
  
  <p>I'm having problems making this happen. I'm aware of a multitude of posts about this similar issue, but haven't found a solution that works for me.</p>
  
  <p>I have tried:</p>
  
  <ul>
  <li>Doing a waitforexit, but this of course blocks the UI and users cannot enter data.</li>
  <li>Attempting an asynchronous process call, where another method is called when this process is completed. This causes a problem where the new method is called from another thread and can't update the form.</li>
  <li>Doing a wait/sleep loop in the UI, but again this will naturally block the UI.</li>
  </ul>
  
  <p>What would be the neatest, and simplest solution for a <strong>simple Windows Form</strong> program? There are no extra classes used, and all code is in the <em>Form1 class</em>.</p>