| 

.NET C# Java Javascript Exception

1
Anders als VB.NET bietet C# keine Option in den Projekteigenschaften an, um Einzelinstanzanwendungen zu erzeugen. Gibt es einen einfachen Weg, wie ich das mehrfach starten einer Anwendung dennoch unter C# unterbinden kann?

Die Lösung sollte gleichermaßen in C# und VB.NET nutzbar sein. Die hier angegebene Lösung per Mutex ist dafür nicht geeignet, oder? Was ist überhaupt ein Mutex?
17.06.2013
Klaus L. 343 2 6
6 Antworten
2
Hallo,
Mutex ist genau das richtige Stichwort. Ein paar wenige Zeilen in der Program.cs führen zum gewünschten Verhalten:
static void Main()
{
bool ok;
System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out ok);

if (!ok)
{
MessageBox.Show(Application.ProductName + " läuft bereits!");
return;
}

Application.EnableVisualStyles();
Application.Run(new frmMain());
}


Eine sehr gute Definition des Begriffes ist (wie so oft) bei Wikipedia zu finden.

Liebe Grüße, Tom
17.06.2013
Metal-Frog 936 1 7
1
Ich hab's nicht ausprobiert, aber die vorgestellte Lösung scheint mir durchaus geeignet zu sein.

Mutex ist ein Kunstwort. Eigentlich heißt es mutual exclusion - also gegenseitiger Ausschluss.
Wenn eine Instanz im Besitz des Mutex ist, kann keine andere Instanz ihn verwenden, so lange die erste Instanz den Mutex verwendet.
17.06.2013
jsc 289 1 7
Danke für diese Information!
Klaus L. 18.06.2013
1
Schau dir das auch mal an:

Anwendung nur 1x ausführen
25.06.2013
phlow666 922 1 9
0
So get this free paypal money adder tool so that you can have cash in your account.
14.01.2017
0
17.05.2017
0
Mutex ist genau das richtige Stichwort!Hier finden Sie weitere Informationen: 192.168 ll
26.05.2017

Stelle deine .net-Frage jetzt!