Uygulamadan aynı anda bir tane açılmasını garantilemek
Yazdığımız uygulamalardan aynı anda sadece bir tane açık olmasını isteyebiliriz. Bunu garantilemek için, yapmamız gereken process’ler arası iletişim kanalı oluşturmak ve kullanmak olmalıdır.
C# dilinde process’ler arası iletişim (cross-process communication) Mutex sınıfı ile sağlanır.
Mutex sınıfının kullanımını hemen bir örnek ile inceleyelim;
[STAThread]
static void Main()
{
bool AcikUygulamaVar = false;
Mutex m = new Mutex(true, "UygulamanınAdı", out AcikUygulamaVar);
if (AcikUygulamaVar)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
else
{
MessageBox.Show("Uygulamadan aynı anda bir tane açabilirsiniz!");
}
}
Mutex sınıfı ile ilgili daha detaylı bilgiye MSDN‘deki şu makaleden ulaşabilirsiniz.
İlgili diğer başlıklar:
- C# iki koddan hangisini tercih edersiniz?
- Not Responding durumundaki Process’leri bulmak
- C# Try-Catch-Finally Kod Bloğu Hakkında
- .Net 4 COM İyileştirmeleri – Office Uygulamarı ile Çalışmak
- C# siz olsanız hangisini yazardınız?
- FileStream sınıfına Kaydet() ExtensionMethod’u yazalım
- Euler – 3
- C#’ta anahtar kelimeyi değişken ismi olarak kullanma
- ASP.NET ile Mobil Kullanıcıları Mobil Sayfaya Yönlendirmek
- ClickOnce ve ApplicationDeployment class’ı