Mutex Class
Yaptığınız yazılımın birden fazla çalışmamasını isteyebilirsiniz. Doğru olanda budur aslında veri alış verişi yaptığınız programlarda aynı programı çalıştırmanız ver oradan işlem yapmanız sistemin içinden çıkılmaz bir hal alabilir. Mutex denilen kavram yaptığınız programın birden fazla açılması engeller.
Mutex Mutual Exclusion‘un kısaltılmışıdır. Mutex sadece bir theared’e izin verir ve proseslerin kesilmesini engeller. Mutex program çalıştığı anda sistemi hep gözetlemektedir.
Mutex sınıfı, System.Threading kütüphanesinde bulunmaktadır.
Mutex’in parametrelerini incelersek. Kullanım şekli şöyle.
Mutex Mttx = new Mutex(true, "Program", out kontrol);
Bu kullanım incelendiğinde Mutex 3 parametre almakta. İlk parametre bool tipindedir. İkinci parametre ise Mutex’imizin ismidir. Son parametre ise ikinci bir kaynak kullanımı var mı yok mu onu kontrol etmektedir. Biz ise bu son parametreye göre haraket ederek istediğimiz işlemi yapabiliriz.
using System; using System.Windows.Forms; using System.Threading; namespace WindowsApplication1 { static class Program { [STAThread] static void Main() { bool kontrol; //Bir mutex nesnesi oluşturalım. Mutex Mttx = new Mutex(true, "Program", out kontrol); if (!kontrol) { MessageBox.Show("Bu program, zaten çalışıyor."); return; }}}}
Hocam Mutex li Threadları nasıl bulabiliriz bu konuda bir fikriniz var mı ?