C# 应用程序单例(禁止多开) 获取.net版本号 以及 管理员权限

2021-06-10 11:03

阅读:504

Mutex不仅提供跨线程的服务,还提供跨进程的服务。当在构造函数中为Mutex指定名
称时,则会创建一个命名了的Mutex。其他线程创建Mutex时,如果指定的名称相同,则返
回同一个互斥体,不论该线程位于哪个进程或者应用程序域中。

 

使用命名互斥体的一个例子是创建Singleton应用程序,即只能打开一个实例的应用程
序。显然,我们创建的控制台应用程序是可以同时打开多个实例的。下面的代码使用Mutex
实现了只能同时开启一个Console控制台程序。



string asm = Assembly.GetExecutingAssembly().GetName().Name; Mutex mtx = new Mutex(false, asm); if (mtx.WaitOne(TimeSpan.FromMilliseconds(100)) ? false : true;) { MessageBox.Show("采集程序已经运行在此电脑上", "登录重复提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); //逻辑操作处理// Thread.CurrentThread.Abort(); }


评论


亲,登录后才可以留言!