Delphi XE8在应用程序启动时正常处理ETetheringException

前端之家收集整理的这篇文章主要介绍了Delphi XE8在应用程序启动时正常处理ETetheringException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Delphi应用程序网络共享管理器保留2020-2039范围内的20个端口,以启动其通信线程.
我想知道当第21个应用程序在同一台计算机上启动时会发生什么.事实证明,这个应用程序只是挂起无响应,直到它被杀死,我还没有找到一种方法来优雅地终止它.

要重现,只需将TTetheringManager和TTetheringProfile放在空表单上,将配置文件连接到Manager,编译,在IDE外部启动应用程序20次,最后在IDE中启动第21个实例.

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

在System.Tether.NetworkAdapter:procedure TTetheringNetworkManagerCommunicationThread.Execute;
无法启动TCP或UDP通信服务器时引发ETetheringException.Create(SManagerNetworkCreation).到现在为止还挺好.

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

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

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

但这没用.有关如何捕获(或阻止)此异常的任何建议吗?

解决方法

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

猜你在找的Delphi相关文章