Kurumsal Otomasyon Çözümlerinde Zirve

Mutex Class’ı

Şimdiye kadar mutlaka düşünmüşsünüzdür. Bir programı açtığım zaman ikincisinin açılmasını nasıl engellerim? Bunu yapmak için mutex class’ınıbilmiyorsanız işiniz biraz uzun. Ben olsaydım herhalde arka planda bir metin dosyasında log şeklinde programın açık olup olmadığını tutar ona göre kontrol ederdim ama dediğim gibi bu biraz uğraştırıcı.

Şimdi Mutex class’ını örnekle inceleyelim…

Mutex ile bir programın birden fazla açılması kontrol altında tutulur. Mutex bekçi gibidir. Bir kaynağa ulaşmaya çalışan bir uygulama varsa Mutex giriş iznini ona verir, ikinciyi reddeder.

Kısacası bir program için tek kanal kullanılır. İkinci bir kanala izin verilmez.

Öncelikle bir Windows uygulaması açıp Program.Cs classına geliniz…

Mutex Class’ı System.Threading kütüphanesinin bir üyesidir.

Using satırına Using System.Threading;  ekleyiniz…

 

static class Program
    {
        ///
        /// The main entry point for the application.
        ///
        [STAThread]
        static void Main()
        {
            bool acikmi=false; //Mutex bileti daha önce bu programa vermedi…
            Mutex mtex = new Mutex(true, “Programim”, out acikmi); //Program açıldığı anda Mutex devreye girer ve
                                                 //out parametreli acikmi değişkeni programin acilip kapanmasına göre değişir…
                if (acikmi) //Program ilk kez açılıyorsa ya da başka açık program yoksa true döner…
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new Form1()); //Program açılır…
                }
                else //Mutex False döndürürse yani programımız daha önce açılmışsa açma işlemini iptal eder…
                {
                    MessageBox.Show(“Program zaten açık…”);
                }
          }

}

Diğer yazılarımda görüşmek üzere…

Yorum Yapılmamış

Bir cevap yazın