import {ObjectBase} from '../../common/lang/ObjectBase'; import {ResultEnum} from '../../common/lang/ResultEnum'; import {ThreadStatusEnum} from './ThreadStatusEnum'; //========================================================== // 线程。 // // @class // @author maocy // @version 150105 //========================================================== export abstract class Thread extends ObjectBase { // 名称 public name: string; // 延时 public delay: number; // 间隔 public interval: number; // 状态 public statusCd: ThreadStatusEnum; //========================================================== // 构造处理。 // // @method //========================================================== public constructor() { super(); // 设置属性 this.delay = 0; this.interval = 100; this.statusCd = ThreadStatusEnum.Sleep; } //========================================================== // 启动处理。 // // @method //========================================================== public start() { this.statusCd = ThreadStatusEnum.Active; } //========================================================== // 停止处理。 // // @method //========================================================== public stop() { this.statusCd = ThreadStatusEnum.Finish; } //========================================================== // 调用处理。 // // @return 处理结果 //========================================================== public abstract onProcess(): ResultEnum; //========================================================== // 调用处理。 // // @param interval:integer 调用间隔 //========================================================== public process(interval: number) { if (this.delay <= 0) { this.onProcess(); } else { this.delay -= interval; } } }