在winform下,只运行一个实例只需这样就可以:
1. 首先要添加如下的namespace:
using System.Threading;
2. 修改系统Main函数,大致如下:
bool bCreatedNew;
//Create a new mutex using specific mutex name
Mutex m =new Mutex( false, “myUniqueName”, out bCreatedNew );
if( bCreatedNew )
Application.Run(new yourFormName());
在wpf中如何做呢?
我在微软论坛发帖之后,有高手提出了如下的解决办法,我试验之后,此法可行,就贴出来和大家分享。有人还有其他解决办法,可以写出来一起探讨:
首先 引用Microsoft.VisualBasic
然后新建一个类 single
public class single:Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
{
App a;
public single()
{
this.IsSingleInstance = true;
}
protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs)
{
a = new App();
a.InitializeComponent();
a.Run();
return false;
}
发表回复