如何显示子线程的当前状态
刚刚完成的一个小程序是分析使用竖向排列的24针打印头打印一个数据文件,分析每根针的出针次数等一些参数,给机械开发部门做寿命分析等等。
由于数据文件可能很大,分析时间会比较长,因此要能够显示分析进度,否则让比人以为程序死掉了那不是人生一大憾事。
因此,分析工作放在子线程中进行,通过产生“状态改变事件”和“分析结束事件”来通知主线程更新状态。线程定义如下:
//==================================
// mythread.pas
//===================================//
tstatuschangedevent = procedure (percent: integer) of object; //状态改变事件
tfinishedevent = procedure of object; // 分析结束事件
tmythread = class(tthread)
private
fonstatuschanged: tstatuschangedevent;