wpf单实例运行

       默认情况下我们可以打开一个应用程序多个实例,例如你双击一个exe多次。当然有些时候这么做会带来很多好处,但是有时我们又不希望这么做,要避免这个问题其实很简单,同WinForm中单实例运行一个应用是一样的,我们只需要在应用程序启动时创建一个"排他锁",修改App.xaml.cs如下:

  1. using System;  
  2. using System.Windows;  
  3. using System.Threading;  
  4.   
  5. namespace WPFLifeCycle  
  6. {  
  7.     /// <summary>  
  8.     /// Interaction logic for App.xaml  
  9.     /// </summary>  
  10.     public partial class App : Application  
  11.     {  
  12.         Mutex mutex=null;  
  13.         protected override void OnStartup(StartupEventArgs e)  
  14.         {  
  15.             base.OnStartup(e);  
  16.             bool createdNew = false;  
  17.             mutex = new Mutex(true"WPFLifeCycle",out createdNew);  
  18.             if (!createdNew)  
  19.             {  
  20.                 MessageBox.Show("程序已启动!""系统提示", MessageBoxButton.OK, MessageBoxImage.Warning);  
  21.                 this.Shutdown();  
  22.             }  
  23.         }  
  24.     }  

参考WPF系列之应用程序生命周期

posted on 2014-07-11 23:39  明月几时有25  阅读(455)  评论(0编辑  收藏  举报