首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这个在release版本里不起作用!愁闷

2011-12-24 
这个在release版本里不起作用!郁闷C# codebool flag falseProcess current Process.GetCurrentProces

这个在release版本里不起作用!郁闷

C# code
bool flag = false;            Process current = Process.GetCurrentProcess();            System.Threading.Mutex mutex = new System.Threading.Mutex(true, current.ProcessName, out  flag);            if (flag)            {                try                {                    Application.EnableVisualStyles();                    Application.SetCompatibleTextRenderingDefault(false);                    Application.Run(new Form1());                }                catch                {                    Application.Exit();                }            }            else            {                Application.Exit();                return;            }


[解决办法]
你的Mutex被垃圾回收了。

解决方法一:把mutex定义到方法外面,以便保持一个引用,防止被回收。
解决方法二:在Main方法的最后一行调用mutex.Dispose(); 同样是延长mutex的生命,防止被过早回收。

C# code
static System.Threading.Mutex mutex;       //<--void static Main(){    bool flag = false;    Process current = Process.GetCurrentProcess();    mutex = new System.Threading.Mutex(true, current.ProcessName, out  flag);       //<---    if (flag)    ... 

热点排行