带有 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
处理自身异常的能力。
我想知道如果 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
处理自身异常的能力。