문제

연구 프로젝트에 Jlink와 함께 Mathematica를 사용합니다. 여기에는 많은 계산이 포함됩니다. Mathematica는 매개 변수를 입력하고 나중에 결과를 플로팅하기위한 그래픽 프론트 엔드로 사용됩니다. 실제 알고리즘은 Jlink를 통해 호출되는 Java 클래스에 있습니다.

"링크"는 Evalfrontend라는 인스턴스입니다. 버튼을 누르면 이와 같은 것이 실행됩니다.

 RunEvaluation[] := (
  success = False;
  results = evalFrontend@run[];
  eval = evalFrontend@getEvaluation[];
  success = eval@success[];
  Return[results];
  )

계산에 10 초 이상이 필요한 경우 대화 상자가 표시됩니다.

동적 : 커널은 동적 평가에 응답하지 않습니다. 커널을 중단하고 다시 시작하도록 선택하거나 기다릴 수 있습니다. [..

이것이 표시되는 동안 Java는 여전히 실행 중입니다. 그러나 시간이 지나면 다른 대화 상자가 표시됩니다.

동적 비활성화 : ON 또는 더 동적 객체가 평가를 완료하는 데 지나치게 오래 걸립니다. Eitehr가 추가 동적 평가를 비활성화하거나 계속 기다릴 수 있습니다 [...

이것이 나타나면 Java 프로세스가 종료됩니다.

이런 일이 발생하지 않도록하려면 어떻게해야합니까? 모든 힌트는 감사 할 것입니다.

도움이 되었습니까?

해결책

사용해보십시오 동기 업데이트 -> false.

또한보십시오 이 링크.

다른 팁

UI가 계산을 시작하려면 버튼을 클릭하면 메소드를 사용하여 버튼을 사용하십시오.

Button["Start Chugging", RunComputation[], Method -> "Queued"]

동적 대화 상자 비활성화는 결코 나타나지 않으며 동적 업데이트가 여전히 발생하므로 계산 진행 상황을 모니터링 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top