private static void MainInner(string[] args) { if (AppUpdater.OnStartup(args)) { return; } if (args.Length == 2 && args[0] == "--run") { Process.Start(args[1]); return; } var appGuid = ((GuidAttribute)Assembly.GetEntryAssembly().GetCustomAttributes(typeof(GuidAttribute), true).GetValue(0)).Value; var mutexId = $@"Global\{{{appGuid}}}"; if (Array.IndexOf(args, WindowsHelper.RestartArg) != -1) { for (var i = 0; i < 999; i++) { Thread.Sleep(200); using (var mutex = new Mutex(false, mutexId)) { if (mutex.WaitOne(0, false)) { break; } } } ProcessExtension.Start(MainExecutingFile.Location, args.Where(x => x != WindowsHelper.RestartArg)); return; } using (var mutex = new Mutex(false, mutexId)) { _secondInstanceMessage = User32.RegisterWindowMessage(mutexId); if (mutex.WaitOne(0, false)) { if (AppUpdater.OnUniqueStartup(args)) { return; } _initialized = true; App.CreateAndRun(false); /*if (args.Length == 0) { * TryToRunAppSafely(); * } else { * App.CreateAndRun(false); * }*/ } else { PassArgsToRunningInstance(args); } } }