Your video tip is quite interesting, but overall I prefer to use
classes to accomplish this task. .NET Framework provides Mutex
] class for performing when the system needs a synchronization mechanism to ensure that only one thread at a time uses the resource.
is a synchronization primitive that grants exclusive access to the shared resource to only one thread. In addition, A
can be either local to a process or system wide.
In addition, CodeProject has many articles that focus on the same concept. Take a look below at some CodeProject search
I've also written an alternate tip (started by Charles henington) that has been focusing of using Mutex to run only one instance of class.