public partial class App : Application
{ public App() { //不一定要是在Startup时,请选择适合自己应用程序的合理时间 Startup += AppStartup; } void AppStartup(object sender, StartupEventArgs e) { bool createNew; var mutex = new Mutex(true, "TheIdOfThisMutex", out createNew); if (!createNew) { MessageBox.Show("another instance is running"); //记得在关闭程序前关闭mutex,否则进程有可能不退出 mutex.Close(); //不一定要调用Shutdown方法,请选择适合自己应用程序的退出方式 Shutdown(); } else { //记得正常退出程序是关闭mutex Exit += delegate{ mutex.Close(); }; } } }