Hallo Peter,
vergiss die Zeitschleife, das Starten einer zweiten Instanz deines Programms verhinderst du so oder so nicht - warum auch. Verhindern musst du ja nur die gleichzeitige Benutzung bestimmter Ressourcen. Die zweite Instanz wird immer regulär gestartet, prüft dann eine Integritätsbedingung (
CreateMutex) und tritt dann entweder in die Phase der Ressourcenbeschaffung ein oder beendet sich, mitunter nach Übergabe der Aufrufparameter an die existierende Instanz. Wichtig ist nur, dass du den Ein- und Austritt in bzw. aus dem kritischen Teil deines Programmes korrekt signalisierst. Eine überlappende Ausführung außerhalb dieses Blockes ist kein Problem.
Grüße vom marabu