分派的觸發作業會使用 takeTrigger 方法來耗用事件。
開始之前
下列序列圖顯示分派的觸發作業(同步的事件)。
程序
- 為觸發作業呼叫 takeTrigger 方法。
- takeTrigger 呼叫 processEvent 方法以耗用事件。
- processEvent 會執行下列動作:
- 它會呼叫 isBusy 以判定物件是否已經正在耗用事件。如果物件不在忙碌中,processEvent 會執行下列動作:將 sm_busy 旗標設為 TRUE 呼叫 getlId 以取得事件 ID
- processEvent 會呼叫 shouldCompleteRun,以查看在耗用事件後是否有任何要採用的空值轉移。如果有任何要採用的空值轉移,方法會呼叫 runToCompletion 進行採用。
- processEvent 會呼叫 undoBusy 將sm_busy 旗標重設為 FALSE。
- takeTrigger 會呼叫 shouldTerminate 和 setShouldDelete 方法。
如果 (shouldTerminate() && shouldDelete()) 是 1(或 TRUE),則 takeTrigger 會刪除事件。