c# – 即使发生未处理的异常,保持应用程序运行
什么 ?
我正在开发一个需要持续运行的控制台应用程序,无需任何事情什么方法可以阻止多线程应用程序被某些未处理的异常发生在“某个线程某处”中? 为什么 这就是说,我知道如果由于和我的UnhandledException(我已经实现)已经被吹,可能无法从“内”重新启动应用程序. 到目前为止,我已经使用Quartz.net的FileScan作业和一个标志文件来检测类似的东西,并从外面重新启动应用程序.但这对我来说听起来很糟糕.我想找到一些更清洁,更快,更脏的东西. DownVoting / Sniping警告:我知道这可能是“按原样”.请创造性/乐于助人,而不是突然评论,并将其视为“开放式问题” 解决方法
您需要在当前AppDomain上附加事件处理程序到UnhandledException事件:
AppDomain.CurrentDomain.UnhandledException = UnhandledExceptionHandler 在处理程序中,您将必须以某种方式保存足够的状态(对文件,数据库等)重新启动的应用程序传递到新的线程.然后通过调用System.Diagnostics.Process.Start(“MyConsoleApp.exe”)来实例化您的控制台应用程序的新实例. 非常小心引入逻辑,以避免连续的崩溃/重启/崩溃/重新启动循环. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |