Web Analytics
yangyang

码农兼一个普普通通小青年

Single Instance Application


WPF单例应用程序的两种实现

在某些场景下,我们需要应用程序只开启一个实例,本文介绍了WPF中单例应用程序的两种实现,一种是删除App.xaml,手写Main函数来进行启动调度,他的优点是性能相对较好,只需要定义一个Mutex即可,缺点是他放弃了WPF程序中App.xaml的一些默认功能,比如可以存放全局资源样式,没有App.xaml使得在某些情况下,其他的窗体除非手动引用资源或样式,否则得不到设计时支持,这两个缺点都可以通过代码或者设计时标签来回避。另外一种方法是保留App.xaml文件,注册Startup方法,在该方法里启动一个后台线程来监测多次打开的行为,当检测到试图打开多次时,将上次的应用打开,它的缺点是额外多增加了一个工作线程。相比第一种方法来说开销较大,但对于当今的CPU来说,多一个线程处理似乎可以忽略,并且这个线程里面使用的是WaitHandle,实际并不占用太多资源。 …

WPF Single Instance Application

  • 1