Zum Inhalt, überspringe Kopfzeile Zur Navigation, überspringe Kopfzeile
Je nach Art des Programmes ist es unerwünscht bzw. kann sogar zu Fehlern oder Nebenwirkungen führen wenn man dieses mehrmals startet. Wie aber nun herausfinden ob das eigene Programm schon läuft?
Dafür kann man sich die Mutex-Klasse aus System.Threading zu nutze machen.
1: using System; 2: using System.Threading; 3: 4: class Program 5: { 6: private static Mutex mutex; 7: 8: public static void Main( string[] args ) 9: { 10: // Falls Programm schon laeuft neuen Start verhindern. 11: if ( IsRunning() ) return; 12: 13: Console.WriteLine( "Hello World" ); 14: Console.ReadLine(); 15: } 16: 17: 18: /// <summary> 19: /// Pruefen ob Programm schon laueft. 20: /// </summary> 21: /// <returns>True = Programm laeuft schon</returns> 22: public static bool IsRunning() { 23: // Eindeutige Programmkennung erzeugen 24: mutex = new Mutex( false, System.Reflection.Assembly.GetExecutingAssembly().GetName().Name+"_MultiStartPrevent" ); 25: 26: if ( mutex.WaitOne( 0, true ) ) return false; 27: return true; 28: } 29: }
Zum Inhalt zurück, überspringe Navigation | Zum Seitenanfang