閱讀英文

共用方式為


終止

您可以使用 Halt 函式來停止目前的規則引擎執行。 Halt函式採用 類型 Boolean 為 的一個參數。 如果您將 參數的值指定為 true ,規則引擎也會清除包含擱置候選規則的議程。

Policy.Execute方法基本上是RuleEngine.Execute方法的包裝函式。 該方法的程式碼與下列程式碼類似:

RuleEngine.Assert(facts);   
RuleEngine.Execute();   
RuleEngine.Retract(facts);  

如果您使用Policy.Execute方法來執行原則,規則引擎會在執行 Halt函式時,將控制權傳回Policy.Execute方法。 Policy.Execute方法會撤銷事實,並將控制權傳回給呼叫端。 因此,終止的原則執行不能在此情況下繼續。 當您使用 呼叫規則 圖形來叫用原則時,會發生相同的情況。

不過,如果您使用 RuleEngine.Execute 方法直接執行原則,只要再次呼叫 RuleEngine.Execute,即可繼續停止的原則執行,方法是直接呼叫 RuleEngine.Execute (前提是您未撤銷兩個呼叫) 之間所需的任何物件。 以下是繼續執行已終止原則的範例程式碼:

//assert facts into working memory of the rule engine instance  
RuleEngine.Assert(facts);   
//execute the policy  
RuleEngine.Execute();   
//policy invokes the Halt method when executing actions.   
//control is returned to here when the Halt method is invoked  
  
//when engine is halted do the following  
//Add your code here  
  
//To resume the halted rule engine execution  
RuleEngine.Execute();  
//retract or remove facts frm the working memory of the rule engine  
RuleEngine.Retract(facts);  

請注意, Policy.Execute 方法會快取規則引擎實例,以提高效能。 當您直接使用 RuleEngine.Execute 方法時,不會快取規則引擎實例。

另請參閱

引擎控制函式