How can I make sure there is only one instance of my application running

Platform: WinForms|Category: Deployment

Saar Carmi shows how to do this in his sample found on C# Corner. In it, he uses the Process class in System.Diagnostics to implement this functionality using code such as

[C#]
public static Process RunningInstance()
 {
	Process current = Process.GetCurrentProcess();
 	Process[] processes = Process.GetProcessesByName (current.ProcessName);

	 //Loop through the running processes in with the same name
	 foreach (Process process in processes)
	 {
 		//Ignore the current process
		 if (process.Id != current.Id)
 		{
 			//Make sure that the process is running from the exe file.
			 if (Assembly.GetExecutingAssembly().Location.Replace('/', '\\') == current.MainModule.FileName)
			 {
 				//Return the other process instance.
 				return process;
			 }
		 }
	 }
	 //No other instance was found, return null.
	 return null;
 }

[VB.NET]
Public Shared Function RunningInstance() As Process
	Dim current As Process = Process.GetCurrentProcess()
	Dim processes As Process() = Process.GetProcessesByName(current.ProcessName)
   
	’Loop through the running processes in with the same name
	Dim process As Process
	For Each process In  processes
		’Ignore the current process
		If process.Id <> current.Id Then
			’Make sure that the process is running from the exe file.
			If [Assembly].GetExecutingAssembly().Location.Replace('/', '\') = current.MainModule.FileName Then
 				’Return the other process instance.
				Return process
			End If
		End If
	Next process
	’No other instance was found, return null.
	Return Nothing
End Function ’RunningInstance