繁体   English   中英

Delphi XE8在应用程序启动时优雅地处理ETetheringException

[英]Delphi XE8 gracefully handle ETetheringException at application startup

从2020年到2039年,Delphi应用程序网络共享管理器将保留20个端口,以启动其通信线程。 我想找出在同一台计算机上启动21st应用程序时发生的情况。 事实证明,该应用程序只是挂起而无响应,直到被杀死为止,而我还没有找到一种优雅地终止它的方法。

要进行复制,只需将TTetheringManager和TTetheringProfile放在一个空的窗体上,将配置文件连接到Manager,进行编译,在IDE外部启动应用程序20次,最后在IDE中启动第21个实例。

到目前为止,这是我发现的:

System.Tether.NetworkAdapter中:过程TTetheringNetworkManagerCommunicationThread.Execute 当无法启动TCP或UDP通信服务器时,引发ETetheringException.Create(SManagerNetworkCreation) 到目前为止,一切都很好。

此异常显示在调试器中。 当我继续并逐步执行以下代码时,该应用程序最终挂在System:函数AcquireExceptionObject上,并且永不返回。

由于在Application.Run期间引发了应用程序,因此我尝试通过以下方法捕获异常:

try
  Application.Run;
except
  ShowMessage('Something went terribly wrong!');
end;

但这没用。 关于如何捕获(或防止)此异常的任何建议?

由于这确实似乎是一个错误,因此我为此提交了质量报告: https : //quality.embarcadero.com/browse/RSP-11345

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM