如何防止被重复启动WPF和WinForm其实思路一样,只不是细节上有点差异,废话不多说直接上代码:
App.xaml.cs:
...
protected override void OnStartup(StartupEventArgs e)
{
_ = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out bool ret);
if (!ret)
{
MessageBox.Show("已有一个程序实例正在运行中,请勿重复启动。", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
Environment.Exit(0);
}
else
{
base.OnStartup(e);
...
}
}
...