判断同一程序不能同时启动两个应用的代码:
在Program中加入如下判断:
bool bRun = true; System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out bRun); if (bRun) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Login()); m.ReleaseMutex(); } else { MessageBox.Show("该XXXX程序已经运行"); }
然后,我们的程序一般不会捕获到所有的异常,总会由于各种原因造成程序意外停止,而客户往往最厌烦的就是看到这种现象,所以我们可以捕获一下系统中未处理的异常,来防止类似情况的发生,
static void Main() { Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Login()); m.ReleaseMutex(); } static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { MessageBox.Show(e.Exception.Message, "发生异常", MessageBoxButtons.OK, MessageBoxIcon.Information); }
ThreadException 事件,捕获到未处理异常时发生,所以我们可以在这个事件里处理一下,提示给用户发生的异常。