时间:2021-05-19
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",五秒钟后,程序自动退出。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#使用Mutex简单实现程序单实例运行的方法。分享给大家供大家参考。具体如下:[STAThread]staticvoidMain(){booli
本文实例讲述了C#简单实现防止多个程序运行的方法。分享给大家供大家参考,具体如下://////应用程序的主入口点。///[STAThread]staticvoi
本文以实例形式讲述了C#单例模式(SingletonPattern)的实现方法,分享给大家供大家参考。具体实现方法如下:一般来说,当从应用程序全局的角度来看,如
本文实例讲述了C#使用windows服务开启应用程序的方法。分享给大家供大家参考。具体如下:使用windows服务开启应用程序,会遇到如下问题1.使用windo
Python运行时环境。通过使用AppEngine的Python运行时环境,您可以使用Python编程语言实现应用程序,以及在优化的Python解释器上运行应用