1.全局异常捕获
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Application.ThreadException += Application_ThreadException; //处理非UI线程异常 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) { var ex = e.Exception; if (ex != null) { LogHelper.Log(ex); } MessageBox.Show("系统出现未知异常,请重启系统!"); } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { var ex = e.ExceptionObject as Exception; if (ex != null) { LogHelper.Log(ex); } MessageBox.Show("系统出现未知异常,请重启系统!"); }
单实例启动:
var ProcessName = Process.GetCurrentProcess().ProcessName; if (!(Process.GetProcessesByName(ProcessName)).GetUpperBound(0) > 0) { Application.run(new MainForm()); }
bool Running; using (System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out Running)) { if (Running) { Application.Run(new MainForm()); } }
自动启动
var reg = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun", true); if (reg == null) { reg = Registry.LocalMachine.CreateSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionRun"); } reg.SetValue("自动启动程序名称","自动启动程序路径");//在注册表中添加一项就可以做到自动启动
内存使用量限制:
x86最大使用量2G[最大4G,系统保留1G,出于商业目的个人用户只可以使用2G],除去代码占用的空间实际的程序运行内存最大只能支持到1.4G-1.5G之间,实际测试的值,再大就会内存溢出。
x64编译的最大使用内存最大可以理论可以打到16TB,也就是说可以满足大多数的程序设计要求。来源网址:http://www.360doc.com/content/15/0617/16/6075898_478777201.shtml
这一点对于有大量的数据操作的情况,非常的重要。