2,462
社区成员
发帖
与我相关
我的任务
分享
'ITask
Option Explicit
'任务是否运行中'
Public Property Get Enabled() As Boolean
End Property
'下个触发时点'
Public Property Get NextTime() As Long
End Property
'达到触发时点时被调用。'
'显示下一帧动画或下一步移动。'
'同时需要增加NextTime的值,如果动画/移动结束则设Enabled为False'
Public Sub OnTimer()
End Sub
Private Sub RunTasks()
Dim colTasks As Collection
Dim cTask As ITask
Dim lTime As Long
Dim bOnTimer As Boolean
Dim lEnabledCount As Long
Set colTasks = New Collection
'初始化动画/移动的任务实例,加入colTasks集合'
Do
lTime = timeGetTime()
lEnabledCount = 0
bOnTimer = False
For Each cTask In colTasks
If cTask.Enabled Then
If lTime >= cTask.NextTime Then
cTask.OnTimer
bOnTimer = True
If cTask.Enabled Then
lEnabledCount = lEnabledCount + 1
End If
Else
lEnabledCount = lEnabledCount + 1
End If
End If
Next
If bOnTimer Then
DoEvents
End If
Loop While lEnabledCount > 0
End Sub