<p>In .NET, what's the best way to prevent multiple instances of an app from running at the same time? And if there's no "best" technique, what are some of the caveats to consider with each solution?</p>

http://en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0
—Single-Instance_Detection_and_Management