处理全局异常处理程序中的线程异常?

时间:2010-09-03 12:16:22

标签: multithreading delphi exception delphi-2010

我有一个安装了全局异常处理程序的主应用程序。现在,对于在另一个线程中引发的某些特定异常,我希望调用全局异常处理程序。但它只处理来自主线程的异常。我也在线程中尝试了以下内容,但它也不起作用:

RunInMainThread (procedure
                 begin
                 raise EExceptionFromWithinThread.Create;
                 end);

其中RunInMainThread只执行在主线程上下文中作为参数给出的匿名方法。

为什么这不起作用?处理这种情况的正确方法是什么?

3 个答案:

答案 0 :(得分:4)

这个怎么样:向主线程发送一条消息,应该引发异常。

答案 1 :(得分:1)

我在线程中处理了异常,将消息保存为常见的字符串变量。当线程状态改变时,我检查了主线程中的变量。使代码非常易读。

答案 2 :(得分:0)

如果您有兴趣(http://www.csinnovations.com/framework_overview.htm),我会在我的框架中执行此操作。