Диалоговое окно Mathematica “Отключить динамическое” убивает Java

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

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Прервать Динамический:Ядро не реагирует на динамическую оценку.Вы можете либо прервать и перезапустить ядро, либо продолжить ожидание.[..]

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

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

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

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

Это было полезно?

Решение

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

Смотрите также эта ссылка.

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top