带有TIdTcpServer的TApplicationEvents问题?

时间:2019-04-12 00:29:19

标签: delphi indy tcpserver

我想知道在TcpServer OnExecute事件发生异常的情况下,TApplicationEvents组件是否会引起某些问题,在这种情况下,印打机无法正确处理错误。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

因此,为回答您的问题,TApplication(Events)不会干扰TIdTCPServer处理自身异常的能力。