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.