영어로 읽기

다음을 통해 공유


Halt

Halt 함수를 사용하여 현재 규칙 엔진 실행을 중지할 수 있습니다. Halt 함수는 형식Boolean의 매개 변수 하나를 사용합니다. 매개 변수의 값을 로 true지정하면 규칙 엔진은 보류 중인 후보 규칙이 포함된 어젠다도 지웁니다.

Policy.Execute 메서드는 기본적으로 RuleEngine.Execute 메서드를 둘러싼 래퍼입니다. 이 메서드의 코드는 다음과 유사합니다.

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

Policy.Execute 메서드를 사용하여 정책을 실행하는 경우 규칙 엔진은 Halt 함수가 실행될 때 Control을 Policy.Execute 메서드로 반환합니다. Policy.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 메서드를 직접 사용하는 경우 규칙 엔진 인스턴스는 캐시되지 않습니다.

참고 항목

엔진 제어 함수