Mathematicaの“ダイナミックを無効にする”ダイアログはJavaを殺します

StackOverflow https://stackoverflow.com/questions/820729

  •  03-07-2019
  •  | 
  •  

質問

私は、多くの計算を伴う研究プロジェクトにMathematicaとJLinkを使用しています。 Mathematicaは、パラメータを入力し、後で結果をプロットするためのグラフィカルなフロントエンドとして使用されます。実際のアルゴリズムは、JLink経由で呼び出されるJavaクラスにあります。

「リンク」 evalFrontendという名前のインスタンスです。ボタンを押すと、次のようなものが実行されます。

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

計算に10秒以上必要な場合、ダイアログが表示されます:

  

Abort Dynamic:カーネルは動的評価に応答していません。カーネルを中止して再起動するか、待機を続けるかを選択できます。 [..]

これが表示されている間、Javaはまだ実行中です。ただし、しばらくすると、別のダイアログが表示されます:

  

動的の無効化:1つ以上の動的オブジェクトの評価が完了するまでに時間がかかりすぎています。さらに動的評価を無効にするか、待機を続けることができます[...]

これが表示されると、Javaプロセスは終了します。

これを防ぐにはどうすればよいですか?ヒントをいただければ幸いです。

役に立ちましたか?

他のヒント

UIでボタンをクリックして計算を開始する場合は、[方法]を使用します-> 「キュー」"ボタンのオプション:

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

[動的を無効にする]ダイアログは表示されず、動的更新が引き続き発生するため、計算の進行状況を監視できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top