C# 程序只允许运行一个实例的正确代码
来源:互联网 发布:幼儿园大班美工公开课 编辑:程序博客网 时间:2024/05/15 23:43
不得不感叹一下天下代码一大抄,到百度上一搜,结果都是如下的代码。
[STAThread] static void Main() { //只允许运行一个程序 bool createNew; System.Threading.Mutex mutex = new System.Threading.Mutex (true, "Global\\" + Application.ProductName, out createNew); { if (createNew) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } else { MessageBox.Show("只允许运行一个程序!"); } } }恐怕大家找到的和这大同小异,很可惜,这段代码DEBUG模式下没问题,在RELEASE却没有成功,
问题原因是Mutex被声明为一个局部变量,在relese模式下由于优化问题,可能由于编译器认为Mutex不再被
使用,被回收了,正确的代码如下,本人测试过
static System.Threading.Mutex mutex; [STAThread] static void Main() { //只允许运行一个程序 bool createNew; mutex = new System.Threading.Mutex (true, "Global\\" + Application.ProductName, out createNew); { if (createNew) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } else { MessageBox.Show("只允许运行一个程序!"); } } }
- C# 程序只允许运行一个实例的正确代码
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- C#程序只允许运行一个实例的解决方案
- 只允许一个程序运行一个实例 代码
- C# Winform程序只允许运行一个实例
- C# 只允许运行一个实例
- C# 只允许运行一个实例
- C# 只允许运行一个实例
- c# winform 只允许运行一个实例
- IOS 4.2 编写真机和模拟器通用的framework(静态库)
- OpenFlow学习之Mininet安装
- 数据库锁表及阻塞的原因和解决办法 数据库锁表及阻塞的原因和解决办法
- Android源码编译整理总结
- gentoo USE 项目解释
- C# 程序只允许运行一个实例的正确代码
- 关于人脸识别算法
- python的排列组合
- oracle 重新编译用户无效对象
- 自己制作CFLinux系统(三)
- 可序列化类型实现深拷贝方法(DeepCopy)
- SQL Server 2005数据库镜像
- 【网摘】ActiveReports中文使用手册
- 持续集成体验No1