我有一个安装了全局异常处理程序的主应用程序。现在,对于在另一个线程中引发的某些特定异常,我希望调用全局异常处理程序。但它只处理来自主线程的异常。我也在线程中尝试了以下内容,但它也不起作用:
RunInMainThread (procedure
begin
raise EExceptionFromWithinThread.Create;
end);
其中RunInMainThread
只执行在主线程上下文中作为参数给出的匿名方法。
为什么这不起作用?处理这种情况的正确方法是什么?
答案 0 :(得分:4)
这个怎么样:向主线程发送一条消息,应该引发异常。
答案 1 :(得分:1)
我在线程中处理了异常,将消息保存为常见的字符串变量。当线程状态改变时,我检查了主线程中的变量。使代码非常易读。
答案 2 :(得分:0)
如果您有兴趣(http://www.csinnovations.com/framework_overview.htm),我会在我的框架中执行此操作。