- Katılım
- 28 Ocak 2020
- Mesajlar
- 19.476
- Makaleler
- 52
- Çözümler
- 461
Merhaba. C# ile yazılan bir yazılımı 2 defa açılmasını engellemenin birden fazla yöntemi var. Bugün sizlere 2 adet yöntem göstereceğim.
1. Mutex kullanma.
Kısaca Mutex'den bahsedeyim. Mutex, birden fazla thread başlatıldığı zaman bir thread'in ulaştığı yere diğer thread'in erişmesini engellemek/izin vermemek olarak tanımlayabiliriz. Yani bir bölüme sadece 1 thread ile ulaşmayı sağlıyoruz.
2. İşlem adı ile denetleme.
İyi çalışmalar. Kolay gelsin.
1. Mutex kullanma.
Kısaca Mutex'den bahsedeyim. Mutex, birden fazla thread başlatıldığı zaman bir thread'in ulaştığı yere diğer thread'in erişmesini engellemek/izin vermemek olarak tanımlayabiliriz. Yani bir bölüme sadece 1 thread ile ulaşmayı sağlıyoruz.
C#:
static Mutex rotate = new Mutex(true, Path.GetFileNameWithoutExtension(Application.ExecutablePath));
private void App_Load(object sender, EventArgs e){
if (!rotate.WaitOne(TimeSpan.Zero, true)){
MessageBox.Show("Program zaten açık.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
}
}
2. İşlem adı ile denetleme.
C#:
if (Process.GetProcessesByName(Path.GetFileNameWithoutExtension(Application.ExecutablePath)).Length > 1){
MessageBox.Show("Program zaten açık.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
}
İyi çalışmalar. Kolay gelsin.
Son düzenleme: