System.Threading.Mutex:同步基元,它只向一个线程授予对共享资源的独占访问权。
实现原理:在程序启动时,请求一个互斥体,如果能获取对指定互斥的访问权,就继续运行程序,否则就退出程序。
测试代码:
代码如下:
classTest
{
///<summary>
///应用程序的主入口点。
///</summary>
[STAThread]
staticvoidMain(string[]args)
{
boolflag=false;
System.Threading.Mutexmutex=newSystem.Threading.Mutex(true,”Test”,outflag);
//第一个参数:true–给调用线程赋予互斥体的初始所属权
//第一个参数:互斥体的名称
//第三个参数:返回值,如果调用线程已被授予互斥体的初始所属权,则返回true
if(flag)
{
Console.Write(“Running”);
}
else
{
Console.Write(“AnotherisRunning”);
System.Threading.Thread.Sleep(5000);//线程挂起5秒钟
Environment.Exit(1);//退出程序
}
Console.ReadLine();
}
运行结果:
第一次运行,输出”Running”。
不关闭第一次运行的程序,进行第二次运行,输出”AnotherisRunning”,五秒钟后,程序自动退出。
C++实现string存取二进制数据的方法
C++设计模式之职责链模式
上述就是C#学习教程:使用mutex实现应用程序单实例运行代码分享分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/905158.html