System.Diagnostics.Process
属性
public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited 事件。
事件
public event EventHandler Exited //在进程退出时发生。进程退出的时候,一般需要把Process对象释放掉[比如一个Windows应用程序里面另外打开其他的exe,其他exe关闭后的处理]
System.AppDomain
属性
public static AppDomain CurrentDomain { get; } //获取当前 Thread 的当前应用程序域。
事件
public event UnhandledExceptionEventHandler UnhandledException //当某个异常未被捕获时出现。
System.Windows.Forms.Application
详细的信息还是去msdn上查看,特别是要看备注
属性
public static string CommonAppDataPath { get; } 可以把程序的日志写在此路径下,即便是用户切换了Windows用户,还是可以看到程序的以前的日志
//获取所有用户共享的应用程序数据的路径。
public static string StartupPath { get; } //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
方法
public static void Exit() //通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。
public static void EnableVisualStyles() //启用应用程序的可视样式。 新建一个windows窗体应用程序的时候会调用
public static void SetCompatibleTextRenderingDefault(bool defaultValue) 新建windows窗体应用程序的时候会调用,传递的参数是false
//将某些控件上定义的 UseCompatibleTextRendering 属性设置为应用程序范围内的默认值。
defaultValue 用于新控件的默认值。
如果为 true,则支持 UseCompatibleTextRendering 的新控件使用基于 GDI+ 的 Graphics 类进行文本呈现;
如果为 false,则新控件使用基于 GDI 的 TextRenderer 类。
public static void Run(Form mainForm) 新建windows窗体应用程序的时候会调用,传递的参数是新建的一个Form主窗体
//在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见。
public static void DoEvents() //处理当前在消息队列中的所有 Windows 消息。
public static void Restart() The most common reason for calling Restart is to start a new version of the application that you have downloaded through ClickOnce using the Update or UpdateAsync method.(还是英文准确,机器翻译的中文简直是惨不忍睹)
//关闭应用程序并立即启动一个新实例。 ClickOnce部署
事件
public static event ThreadExceptionEventHandler ThreadException //在发生未捕获线程异常时发生。 未捕获的异常,通过这个事件处理来打印日志
总结:
一般来说
System.AppDomain的CurrentDomain的UnhandledException事件是需要注册的
System.Windows.Forms.Application的ThreadException事件也是需要注册的
通过上面两个事件来捕获未知的异常
最后吐槽下,博客园的markdown编辑器,不支持两个空格和enter键换行吗?