Compartir a través de


Parar

Puede usar la función Halt para detener la ejecución del motor de reglas actual. La función Halt toma un parámetro de tipo Boolean. Si especifica el valor del parámetro como true, el motor de reglas también borra la agenda que contiene las reglas candidatas pendientes.

El método Policy.Execute es básicamente un contenedor alrededor del método RuleEngine.Execute . Tiene código similar al código siguiente:

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

Si usa el método Policy.Execute para ejecutar una directiva, el motor de reglas devuelve el control al método Policy.Execute cuando se ejecuta la función Halt . El método Policy.Execute retira los hechos y devuelve el control al autor de la llamada. Por lo tanto, la ejecución de la política detenida no puede reanudarse en este caso. Lo mismo sucede cuando se usa la forma Reglas de llamada para invocar la directiva.

Sin embargo, si usa directamente el método RuleEngine.Execute para ejecutar la política, puede reanudar la ejecución detenida de la política al activar la siguiente regla pendiente con solo llamar a RuleEngine.Execute de nuevo (siempre que no haya retirado los objetos necesarios entre las dos llamadas). El código de ejemplo para reanudar la ejecución de la directiva detenida es el siguiente:

//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);  

Tenga en cuenta que el método Policy.Execute almacena en caché las instancias del motor de reglas para mejorar el rendimiento. Cuando se usa el método RuleEngine.Execute directamente, las instancias del motor de reglas no se almacenan en caché.

Véase también

Funciones de control del motor