title: Correct .NET way to implement a single instance application
body: <p>I have seen at least three distinct methods on StackOverflow for achieving this.</p>
  <ol>
  <li><p>Using a MUTEX: <a href="https://stackoverflow.com/questions/19147/what-is-the-correct-way-to-create-a-single-instance-application">Accepted answer to this SO question</a></p>
  </li>
  <li><p>Using the Microsoft.VisualBasic library's WindowsFormsApplicationBase: <a href="https://stackoverflow.com/questions/19147/what-is-the-correct-way-to-create-a-single-instance-application/19326#19326">Second highest voted answer to this SO question</a></p>
  </li>
  <li><p>Using Process.GetProcessNames to check if your application is running: <a href="https://web.archive.org/web/20141224204707/http://bobpowell.net/singleinstance.aspx" rel="nofollow noreferrer">Method here</a> was posted as an answer to this <a href="https://stackoverflow.com/questions/3211529/net-4-single-application-instance">SO question</a></p>
  </li>
  </ol>
  <p>I'm sure there are more ways to do this as well.</p>
  <p>I'm simply wondering if one of these is preferred and what the consequences might be if I pick the &quot;wrong&quot; one.</p>