Bir uygulamayı aynı anda birden fazla çalıştırmamak
Aynı programın tekrar açılmasını engellemek için birden fazla çözüm var ancak ben kolaylık açısından kullandığım Mutex metodunu göstereceğim.
[csharp]
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
bool ilkUygulama;
//Mutex nesnesi oluşturalım
Mutex mtx = new Mutex(true, "BenimMutex", out ilkUygulama);
//ilk parametre bool türünde mutex’i sahiplenmek için kullanılır. 2.Parametre mutex’i tekilleştirmek için bir isim veriler. Üçüncü parametre ise başarılı veya başarızı sonucu bildiren değeri tutmak için kullanılır.
if (!ilkUygulama)
{
MessageBox.Show("Program şuan çalışıyor. Tekrar Açılamaz.");
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
GC.KeepAlive(mtx); //Nesnemizi bellektek atalım.
}
}
[/csharp]

Ekran görüntümüz.