Для того, что бы Ваша программа запускалась только в единственном экземпляре, нужно использовать класс Mutex (mutual exclusion — взаимное исключение), который обеспечивает синхронизация процессов и их блокировку.
Program.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace
_0016 {
-
static
class
Program {
-
/// <summary>
-
/// The main entry point for the application.
-
/// </summary>
-
[STAThread]
-
static
void
Main() {
-
bool
one;
-
//true - вызывающий поток является изначальным владельцем
-
//"0016" - имя программы
-
//out one - присваивает булево значение, является ли поток изначальным владельцем
-
System.Threading.Mutex M =
new
System.Threading.Mutex(
true
,
"0016"
,
out
one);
-
if
(one) {
-
Application.EnableVisualStyles();
-
Application.SetCompatibleTextRenderingDefault(
false
);
-
Application.Run(
new
Form1());
-
}
-
else
{
-
MessageBox.Show(
"Приложение уже выполняется!"
);
-
}
-
}
-
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Threading.Tasks;
using
System.Windows.Forms;
namespace
_0016 {
-
static
class
Program {
-
/// <summary>
-
/// The main entry point for the application.
-
/// </summary>
-
[STAThread]
-
static
void
Main() {
-
bool
one;
-
//true - вызывающий поток является изначальным владельцем
-
//"0016" - имя программы
-
//out one - присваивает булево значение, является ли поток изначальным владельцем
-
System.Threading.Mutex M =
new
System.Threading.Mutex(
true
,
"0016"
,
out
one);
-
if
(one) {
-
Application.EnableVisualStyles();
-
Application.SetCompatibleTextRenderingDefault(
false
);
-
Application.Run(
new
Form1());
-
}
-
else
{
-
MessageBox.Show(
"Приложение уже выполняется!"
);
-
}
-
}
-
}
}