加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 04:09:12 所属栏目:大数据 来源:网络整理
导读:Delphi应用程序网络共享管理器保留2020-2039范围内的20个端口,以启动其通信线程. 我想知道当第21个应用程序在同一台计算机上启动时会发生什么.事实证明,这个应用程序只是挂起无响应,直到它被杀死,我还没有找到一种方法来优雅地终止它. 要重现,只需将TTetheri
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读