Feedback

C# - nur eine Instanz eines Programms zulassen

Veröffentlicht von am 6/23/2006
(5 Bewertungen)
Mit diesem Trick wird verhindert, das man eine Applikation mehr als einmal starten kann.
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() 
{
  System.Threading.Mutex Mu = new System.Threading.Mutex(false, "{86E6517F-71A5-4ea6-A4E6-DA3AF2932C97}");  
  if(Mu.WaitOne(0, false)) 
    Application.Run(new Form1());
  else
    MessageBox.Show("Dieses Programm ist bereits geöffnet");
}
Abgelegt unter Instanz, einmal, eine, Programmstart.

2 Kommentare zum Snippet

herbivore schrieb am 12/10/2006:
Für jedes Programm, von dem man nur eine Instanz zulassendas will, musst man einen neuen eindeutigen Namen (hier: "{86E6517F-71A5-4ea6-A4E6-DA3AF2932C97}") für die Mutex wählen. Unterschiedliche Programme, die denselben Namen verwenden, würden sich gleichzeitig aussperren.
hero4hire schrieb am 4/13/2017:
Außerdem sollte man jeden Mutex nach Gebrauch unbedingt mit "ReleaseMutex()" wieder freigeben.
 

Logge dich ein, um hier zu kommentieren!