使用mutex实现应用程序单实例运行代码分享
程序员文章站
2024-02-24 12:45:10
system.threading.mutex :同步基元,它只向一个线程授予对共享资源的独占访问权。实现原理: 在程序启动时,请求一个互斥体,如果能获取对指定互斥的访问权,...
system.threading.mutex :同步基元,它只向一个线程授予对共享资源的独占访问权。
实现原理: 在程序启动时,请求一个互斥体,如果能获取对指定互斥的访问权,就继续运行程序,否则就退出程序。
测试代码:
复制代码 代码如下:
class test
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[stathread]
static void main(string[] args)
{
bool flag=false;
system.threading.mutex mutex=new system.threading.mutex(true,"test",out flag);
//第一个参数:true--给调用线程赋予互斥体的初始所属权
//第一个参数:互斥体的名称
//第三个参数:返回值,如果调用线程已被授予互斥体的初始所属权,则返回true
if(flag)
{
console.write("running");
}
else
{
console.write("another is running");
system.threading.thread.sleep(5000);//线程挂起5秒钟
environment.exit(1);//退出程序
}
console.readline();
}
运行结果:
第一次运行,输出"running"。
不关闭第一次运行的程序, 进行第二次运行,输出"another is running",五秒钟后,程序自动退出。
下一篇: mysql备份与恢复详解
推荐阅读
-
使用mutex实现应用程序单实例运行代码分享
-
C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
-
使用mutex实现应用程序单实例运行代码分享
-
QT中实现程序只运行一个实例--应用程序的单例化
-
PHP中数据库单例模式的实现代码分享_php实例
-
C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
-
C#使用Mutex简单实现程序单实例运行的方法
-
C#使用Mutex简单实现程序单实例运行的方法
-
JavaWeb使用Session和Cookie实现登录认证的代码实例分享
-
CSS3如何实现文字向右循环闪过效果以及可在移动端使用的实例代码分享