读书人

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

发布时间: 2011-12-24 23:03:24 作者: rapoo

这个在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)    ... 

读书人网 >C#

热点推荐