日期:2014-05-18  浏览次数:21371 次

【c# Winform 】如果程序报错后自动退出程序,关闭进程
在做一个客户端软件,加入一台电脑不能同时打开运行软件

C# code

bool isAppRunning = false;
            System.Threading.Mutex mutex = new System.Threading.Mutex(
                true,
                System.Diagnostics.Process.GetCurrentProcess().ProcessName,
                out isAppRunning);
            if (!isAppRunning)
            {
                MessageBox.Show("本程序已经在运行了,请不要重复运行!");
                
                Environment.Exit(1);

            }



因为这个客户端软件中使用到一些组件,所以需要在使用前安装相关组件驱动,否则启动运行会报错。
如果报错的话,用户关闭了程序窗口,但是程序进程仍然存在。
这时候用户再次开启一个软件窗口,就会提示“本程序已经在运行了,请不要重复运行!”的提示框,无法启动。
只能手动任务管理器中,结束进程,才能重新启动软件。

这样的话,用户体验很不好,有些电脑不熟的用户操作很不方便。
请问下有什么办法解决吗?在程序报错的时候,结束进程?或者是每次启动时,检测关闭上一个进程?

------解决方案--------------------
正常情况下,程序不可能无法关闭,你需要检查多线程的使用和定时器的代码。