带有 TIdTcpServer 问题的 TApplicationEvents?

TApplicationEvents with TIdTcpServer Problem?

我想知道如果 TcpServer OnExecute 事件发生异常,TApplicationEvents 组件是否会导致一些问题,在这种情况下会阻止 indy 正确处理错误。

我的意思是如果使用 procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception); 事件

它会在 TIdTcpServer 异常上产生问题吗?

TApplication(Events).OnException 事件(通常)仅针对在主 UI 线程的上下文中引发的 未处理的 异常触发。工作线程(通常)不会触发 TApplication(Events).OnException 事件。线程必须手动调用 TApplication.HandleException() 才能实现。大多数线程,包括 Indy 的线程,都不会这样做。

TIdTCPServer是多线程组件。它自己的事件,包括它的 On(Listen)Exception 事件,是在内部工作线程的上下文中触发的,而不是在主 UI 线程的上下文中触发的。

所以,回答你的问题,TApplication(Events) 不会干扰 TIdTCPServer 处理自身异常的能力。