Windows programının sadece tek bir kopyasını çalıştırma
Bu iş için Mutex sınıfından faydalanabiliriz.
Projenizi oluşturduğunuzu ve Form1 adında bir form eklediğinizi düşünürsek, Program.cs dosyanızın Main metodunu şu şekilde güncellemelisiniz:
[STAThread]
private static void Main()
{
const string unique = "buraya bir şey yazınız...";
using (Mutex mtex = new Mutex(true, unique, out bool instanceCountOne))
{
if (instanceCountOne)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
mtex.ReleaseMutex();
}
else
{
MessageBox.Show("Uygulamanın bir kopyası zaten çalışıyor...");
}
}
}
Mutex sınıfı System.Threading namespace i içerisinde yer aldığından
using System.Threading;
eklemeyi unutmayın.
Programı CTRL+F5 ile çalıştırdığınızda (veya build ettikten sonra exe sini çalıştırdığınızda) form çalışacaktır;

Programı bir kez daha çalıştırdığınızda;

şeklinde bir uyarı ile karşılaşırsınız.
#mutex #tek-kopya