Диалог Mathematica «Disable Dynamic» убивает Java - PullRequest
2 голосов
/ 04 мая 2009

Я использую Mathematica с JLink для исследовательского проекта, который требует много вычислений. Mathematica используется в качестве графического интерфейса для ввода параметров и последующего отображения результатов. Реальные алгоритмы находятся в классах Java, которые вызываются через JLink.

«Ссылка» - это экземпляр с именем evalFrontend. При нажатии кнопки выполняется что-то вроде этого:

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

Если для вычисления требуется более 10 секунд, отображается диалоговое окно:

Abort Dynamic: ядро ​​не отвечает на динамическую оценку. Вы можете либо прервать и перезапустить ядро, либо продолжить ожидание. [..]

Пока это отображается, Java все еще работает. Однако через некоторое время появляется другое диалоговое окно:

Отключить динамический: для включения или более динамических объектов требуется слишком много времени для завершения оценки Вы можете отключить дальнейшие динамические оценки или продолжить ожидание [...]

Когда это появляется, процесс Java завершается.

Как я могу предотвратить это? Любые советы будут оценены.

Ответы [ 2 ]

1 голос
/ 04 мая 2009

Попробуйте использовать Синхронное обновление -> Ложь .

См. Также эту ссылку .

0 голосов
/ 09 декабря 2009

Если в вашем пользовательском интерфейсе вы нажали кнопку, чтобы начать вычисление, используйте опцию Метод -> «В очереди» для кнопки:

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

Диалоговое окно «Отключить динамический» никогда не появится, и динамические обновления все равно будут происходить, поэтому вы сможете отслеживать ход вычислений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...