【问题标题】:How to catch exception from thread?如何从线程中捕获异常?
【发布时间】:2010-12-27 21:08:31
【问题描述】:

我正在使用一个免费的 .net telnet 组件 (De.Mud.Telnet),它有几个可以调用的异步方法,当事情发生时组件会触发事件。我的问题是组件抛出异常,我不知道如何捕获它。没有异常事件,并且我的方法调用不会引发异常。我正在使用服务中的这个组件,但我不知道如何捕获异常。

【问题讨论】:

  • 它可能正在创建自己的线程并扔在那里。您需要在 AppDomain 上捕获所有未捕获的异常。

标签: .net exception exception-handling asynchronous multithreading


【解决方案1】:

源代码似乎是available here。当然不确定,但它肯定符合您的问题描述。编写此代码的人对异常的工作原理一无所知。回调是问题所在,当出现问题时,它们会抛出 ApplicationException。这些异常是无法捕获的,回调是在线程池线程上进行的。

这在 .NET 1.x 时代可能已经奏效了,它只会停止正常工作而不是中止您的程序。至少你领先,你现在知道它不能正常工作。鉴于代码的作用非常很少,而且它的工作方式基本上无法修复,我不得不强烈建议你忘记使用它。

访问 nsoftware.com,了解一家销售真正图书馆的公司。

【讨论】:

    【解决方案2】:

    查看this 页面的后半部分,这是我经常参考的优秀 .NET 线程指南的一部分以获得线程帮助。

    【讨论】:

    • 很遗憾我没有写组件,所以不能在里面添加线程处理。
    • 对不起,应该是“无法处理异步方法中的异常处理。”
    • 我明白了;那么这让我和你一样有兴趣知道解决方案!
    猜你喜欢
    • 2011-09-26
    • 2021-03-05
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多