TIdTCPServer.Active := False的研究
来源:互联网 发布:linux 创建文件命令 编辑:程序博客网 时间:2024/04/27 13:40
设置TIdTCPServer的Active为False的这个操作存在着一些问题:
1. 在设置Active为False时, 将结束所有已连接的客户端线程(PeerThread), 这个结束操作是有超时检测的(超时的时长可以通过TerminateWaitTime属性进行设置)。如果超时, 则抛出超时异常,这个异常在Delphi的IDE环境中无法屏蔽,给调试程序带来很多不便。而且,出现超时异常时,TIdTCPServer并未正常关闭,还得再次设置Active为False。
2. 从设置Active为False开始到所有PeerThread线程结束或者抛出超时异常,主进程将阻塞,主进程的界面将无响应。
这些问题都是让人不能接受的。
研究了一下Indy的源码,写了下面这段代码,来解决TIdTCPServer.Active := False的问题。
- TIdTCPServer.Active := False的研究
- 在active = false的情况下如何找到gameobject
- 数据集没有打开时(dataset.active=false)报accessviolation at address 004c39d3的错误
- 详细AutoEventWireup <@ Page language=c# AutoEventWireup="false"和“True”>的研究
- c++builder上使用TIDTCPServer和TIDTCPClient进行简单通信,如何通过代码动态设置TIDTCPServer的Bindings属性。
- "isELignored=false"的作用
- "isELignored=false"的作用
- "isELignored=false"的作用
- insertable = false, updatable = false的使用
- insertable = false, updatable = false的使用
- event.returnValue=false和return false的用处
- 开始研究active BPEL了!
- php 中 0 == 'false',0 == false 会相等,而false != 'false的原因。
- iOS开发75-leaks will report false positives while the environment variable NSZombiesEnable is active的解
- FALSE 与 false的区别
- 隐藏对象(active为false时)查找
- 由 TIdTCPServer 提供客户端安装程序 WEB 下载的实现方法
- 关于Indy TIdTCPServer控件出现 connection closed gracefully 错误的处理
- JAVA 学习12
- vista下使用C-free和MinGw
- LINUX命令
- syslog监控华为交换机
- 学习笔记:单例模式
- TIdTCPServer.Active := False的研究
- PCB制版电容选择
- PCB 布局降低噪声的检查要项
- 开关电源要降低纹波主要要在三个方面下功夫
- FireFox3的附加组件YSlow导致Cookie丢失
- 模拟地与数字地
- 职业生涯的第一课:学会尊重
- 中英文资源的主要目录
- 网站建设:慢工出细活