Indy IdThreadComponent 线程研究
前几天在开发数据实时解析功能模块的时候,发现解析数据量巨大,特别耗时,程序一跑起来界面假死。
为了优化用户体验,采用了Indy 自带的IdThreadComponent控件,完美的解决了此问题。
下面就IdThreadComponent一些关键属性和方法做如下记录:
1:IdThreadComponent属性
这里主要记录一下Active、Priority和StopMode属性。
Active:默认False,当需要令IdThreadComponent控件生效时,置为True;
Priority:为避免线程之间相互冲突,选择Normal,让系统自带分配优先级;
StopMode:这里分为Terminate和Suspend两种,Terminate为强行终止,Suspend为延缓、等待终止。
2:IdThreadComponent方法
TIdThreadComponent用的是观察者模式,所有这里的事件都是回调事件。
一般比较耗时的操作放在OnRun中执行。
事件执行顺序如下:
On Before Execute&#x