我想知道在TcpServer OnExecute事件发生异常的情况下,TApplicationEvents组件是否会引起某些问题,在这种情况下,印打机无法正确处理错误。
我的意思是如果使用procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);
事件
它会在TIdTcpServer异常上产生问题吗?
答案 0 :(得分:1)
TApplication(Events).OnException
事件(通常)仅针对在主UI线程的上下文中引发的未处理异常触发。工作线程不会(通常)触发TApplication(Events).OnException
事件。一个线程必须手动调用TApplication.HandleException()
才能实现。包括Indy在内的大多数线程都不会这样做。
TIdTCPServer
是一个多线程组件。它自己的事件(包括其On(Listen)Exception
事件)是在内部工作线程的上下文中触发的,而不是在主UI线程的上下文中触发的。
因此,为回答您的问题,TApplication(Events)
不会干扰TIdTCPServer
处理自身异常的能力。