分派事件

方法 OMThread::execute 可回應事件迴圈。

關於這項作業

下列序列圖顯示分派的事件。

此序列圖顯示在此方法內完成的事件主要順序。

事件迴圈如下:

程序

  1. execute 呼叫 get 方法以從事件佇列取得第一個事件。
  2. 如果事件不是 NULL 事件,則 execute 會呼叫 getDestination 方法以判定事件的 OMReactive 目的地。
  3. execute 會呼叫 takeEvent 方法以要求回應物件處理事件。takeEvent 會呼叫 processEvent 方法以執行下列動作:
    1. 它會呼叫 isBusy 以判定物件是否已經正在耗用事件。如果物件不在忙碌中,processEvent 會執行下列動作:

      sm_busy 旗標設為 TRUE

      呼叫 getlId 以取得事件 ID

      lId 的值傳遞至 rootState_dispatchEvent 以分派事件

    2. processEvent 會呼叫 shouldCompleteRun,以查看在耗用事件後是否有任何要採用的空值轉移。如果有任何要採用的空值轉移,方法會呼叫 runToCompletion 進行採用。
    3. processEvent 會呼叫 undoBusysm_busy 旗標重設為 FALSE
  4. execute 會呼叫 isDeleteAfterConsume 方法以判定是否已刪除事件。如果 屬性 屬性為 TRUE,則 execute 會呼叫 刪除 方法刪除事件。

回饋