您的位置:首页 > 其它

实现单实例应用程序的三种方案

2010-06-19 12:07 302 查看
实现单实例应用程序的方法比较多,我列举一些常用的方法:
1,使用互斥体:
static void Main()
{
bool isOnlyOne;
System.Threading.Mutex mtx = new System.Threading.Mutex
(false, "OnlyOne", out isOnlyOne);
if (isOnlyOne)
{
Application.Run(new Form1());
}

else
{
MessageBox.Show("当前已经运行本应用程序了,无须再次运行!
}

2,使用Process类来检测是否已经存在本应用程序的进程:
static void Main()
{
bool isOnlyOne;
foreach(process p in Process.GetProcesses())
{
if(p.ProcessName="xxx")
isOnleOne=false;
}
if (isOnlyOne)
{
Application.Run(new Form1());
}

else
{
MessageBox.Show("当前已经运行本应用程序了,无须再次运行!
}
这种方式会导致程序启动缓慢,一般不推荐使用
3,继承WindowsFormsApplicationBase实现单实例管理器,已经有人写过这个主题了,我就不重复了,具体可以参考: http://hi.baidu.com/hetaoos/blog/item/2abda7185ab63a0334fa415f.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: