实现单实例应用程序的三种方案
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
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
相关文章推荐
- 实现单实例应用程序的三种方案
- 实现单实例应用程序的三种方案
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
- 实现单实例应用程序的三种方法
- 【转】实现展开列ExpandableListView的三种方式之SimpleExpandableListAdapter实例
- 三种方法实例XP风格按钮(CXPButton类、manifest实现)
- [置顶] 【Android】双击返回键,退出android应用程序 双击两次退出程序提示功能 三种实现方法
- JAVA 应用程序内调用链跟踪简单实现方案(基于日志)
- php实现的递归提成方案实例
- C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
- Java分布式锁三种实现方案
- 实现对象深度克隆(deepClone)的三种方案
- 异步加载js 三种实现方案
- PHP版单点登陆实现方案的实例
- 三种主流的WebService实现方案(REST/SOAP/XML-RPC)简述及比较
- python实现根据图标提取分类应用程序实例
- 利用Mutex实现应用程序的单实例运行
- android ViewPager,ViewFlipper,ViewFlow三种实现图片轮播方案介绍
- Java分布式锁的三种实现方案