您的位置:首页 > 其它

FCL小应用系列-----------如何使得程序只能有一个实例运行?

2010-03-08 00:09 736 查看
namespace TestListView
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            if (CreateMutex("MutexName"))
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
                ReleaseMutex();
            }
            else
            {
                MessageBox.Show(
                    "已经有一个实例运行,只能运行一个实例!"
                    ,"程序名称", MessageBoxButtons.OK);
            }
        }
        private static Mutex mutex = null;
        public static bool CreateMutex(string name)
        {
            bool result = false;
            mutex = new Mutex(true, name, out result);
            return result;
        }
        public static void ReleaseMutex()
        {
            if (mutex != null)
            {
                mutex.Close();
            }
        }
    }
}


保证程序只有一个实例运行是常见的编程任务,而使用互斥体是实现这一任务的最简单方式。

源码已经有了,其他的不用说了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: