我们有一个接口(interface)IPoller,为此我们有各种实现。我们有一个过程,它将使用IPoller并在一个单独的线程中启动它。我试图提出一种通用方法,为任何本身不做的IPoller提供异常处理。

我最初的想法是创建一个IPoller的实现,该实现将接受IPoller并仅提供一些日志记录功能。我遇到的问题是如何提供此错误处理?如果我有IPoller.Start(),则该线程的目标是发生异常的地方?还是线程本身上可以挂入某些东西?

最佳答案

就像是:

Thread thread = new Thread(delegate() {
    try
    {
        MyIPoller.Start();
    }
    catch(ThreadAbortException)
    {
    }
    catch(Exception ex)
    {
        //handle
    }
    finally
    {
    }
});

这将确保异常不会到达线程的顶部。

关于c# - .NET线程引发异常时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1668634/

10-10 06:32