7,765
社区成员
发帖
与我相关
我的任务
分享
private type TaskType
TaskID as long '任务ID
StartTime as long '开始时间
FinishTime as long '完成时间
State as long '0=停止,1=执行,2=错误
RunningTime as long '执行时间
TimeOutValue as long '超时时间
end type
定义一个上面类型的动态数组,在你添加任务时增加一个与任务相关的成员,写入相关的参数(超时时间,关联的任务ID等),并在任务开始时记录当时的时间戳(使用GetTickCount函数).
然后你肯定会有一个主循环或类似的机制判断每个任务的状态,在得到任务状态后,写入State.然后再次调用GetTickCount将当前值写入RunningTime中.
然后就可以判断当前的任务的经过时间(RunningTime - StartTime),与当前任务的超时时间(TimeOutValue)比较,就能知道是否超时.
而判断State就能得到当前任务的状态,根据不同状态触发不同的处理方式,比如State=1并且上面的判断没超时,就继续下一个任务判断;State=2的话就设置所有任务为停止状态,并通知界面,XX号任务超时中止.
其它的处理就与此类似了,很简单吧嘿嘿.