什么问题?
我正在开发一个需要全天候运行的控制台应用程序,无论何时都不能停止。有没有办法防止多线程应用程序因“某个线程中发生的未处理异常”而崩溃?
为什么?
请不要给出像“你应该管理好所有的异常”,“这永远不应该发生”等教训。我有我的原因:我们正在进行测试部署,需要保持此应用程序运行,记录异常,并重新启动所有线程。如果发生任何意外情况导致抛出未处理的异常,需要检测并调用一些方法来重新启动所有线程(由于层次设计,原子性是不可能实现的)
话虽如此,我知道如果已经因为未处理异常而崩溃,可能无法从“内部”重新启动应用程序(这已经被我实现了)。
到目前为止,我使用了Quartz.net的FileScan作业和Flag文件来检测此类问题,并从外部重新启动应用程序。但这听起来很卑劣。我想找到更清洁、不那么快速和肮脏的解决方案。
下降票/抨击警告 :我知道这可能不是“原本如此”可行的。请有创意/有帮助而不是突然批评,并将其视为一个“开放性问题”