我正在处理一个WPF应用程序,它有几个线程在后台处理信息。如果其中一个线程崩溃,它会关闭应用程序。我将通过在try/catch中传递给threadstart的函数来纠正这个问题。简单的后台线程在.NET中重新启动
但是,我想知道如果我能做得更好。应该可以编写一个简单的函数,如果失败,它将重新启动一个线程。甚至可以将一些规则立即尝试重新启动,然后延迟后续的重新启动尝试,这将非常简单。基本上,它将作为单线程的非常基本的服务控制管理器。
注意:通过“重启”,我的意思是在新线程上再次调用该方法。
这种方法有什么问题吗? 在我自己写这篇文章之前,有没有我应该评估的现有解决方案?
我只问,因为这似乎不是一个新问题。
我想我应该注意到,在这种特殊情况下,如果我重新启动线程,他们很可能不会再次失败。它们主要是数据收集器,所以当它们重新启动时,“情况”会发生变化。显然,崩溃是应该在代码中修复的问题,但这是针对“异常”的。 – 2009-12-17 18:07:27