分派的触发式操作使用 takeTrigger 方法使用事件。
开始之前
以下时序图显示一个已分派的触发式操作(同步事件)。
过程
- 为触发式操作调用 takeTrigger 方法。
- takeTrigger 调用 processEvent 方法来使用事件。
- processEvent 执行以下操作:
- 调用 isBusy 以确定对象是否已经在使用事件。如果对象没有在忙,processEvent 会执行以下操作:将 sm_busy 标志设置为 TRUECalls getlId 以获取事件标识。
- processEvent 调用 shouldCompleteRun 以检查在使用事件后是否有空过渡可以利用。如果有空过渡可以利用,此方法会调用 runToCompletion 获取这些空过渡。
- processEvent 调用 undoBusy 将 sm_busy 标志重置为 FALSE。
- takeTrigger 调用 shouldTerminate 和 setShouldDelete 方法。
如果 (shouldTerminate() && shouldDelete()) 是
1(或 TRUE),takeTrigger 将删除事件。