Mathematica';s";“禁用动态”;对话杀死Java

Mathematica';s";“禁用动态”;对话杀死Java,java,wolfram-mathematica,Java,Wolfram Mathematica,我将Mathematica与JLink一起用于一个研究项目,该项目涉及大量计算。Mathematica用作图形前端,用于输入参数,然后绘制结果。实际的算法位于Java类中,这些类通过JLink调用 “链接”是一个名为evalFrontend的实例。按下按钮时,会执行如下操作: RunEvaluation[] := ( success = False; results = evalFrontend@run[]; eval = evalFrontend@getEvaluation[];

我将Mathematica与JLink一起用于一个研究项目,该项目涉及大量计算。Mathematica用作图形前端,用于输入参数,然后绘制结果。实际的算法位于Java类中,这些类通过JLink调用

“链接”是一个名为evalFrontend的实例。按下按钮时,会执行如下操作:

 RunEvaluation[] := (
  success = False;
  results = evalFrontend@run[];
  eval = evalFrontend@getEvaluation[];
  success = eval@success[];
  Return[results];
  )
如果计算需要10秒以上,将显示一个对话框:

中止动态:内核没有响应动态计算。您可以选择中止并重新启动内核,也可以继续等待。[……]

当显示此信息时,Java仍在运行。但是,再过一段时间后,将显示另一个对话框:

禁用动态:一个或多个动态对象的计算时间过长。您可以禁用进一步的动态求值或继续等待[…]

当出现这种情况时,Java进程终止

我怎样才能防止这种情况发生?任何提示都将不胜感激。

尝试使用


另请参见。

如果您的用户界面要求您单击按钮以开始计算,请使用方法->“排队”选项来选择按钮:

Button["Start Chugging", RunComputation[], Method -> "Queued"]
“禁用动态”对话框将永远不会弹出,并且动态更新仍将发生,因此您可以监视计算的进度