Факты о MATLAB:
- Пользовательский интерфейс MATLAB - это Java Swing.
- MATLAB обладает отличной совместимостью с Java, можно инициализировать объекты Java и вызывать их методы непосредственно из кода MATLAB, даже возможно передать в MATLAB определенные слушатели Java!
Моя проблема:
MATLAB не предлагает фоновые потоки, поэтому для реагирования MATLAB UI мы должны вызвать функцию drawnow, которая сбрасывает очередь Swing EDT, см. также здесь и здесь. Это известный факт, настолько хороший.
Но теперь у меня есть клиент, чей код, который выполняет вычисление, является p файлом MATLAB (зашифрованным), поэтому у меня нет доступа к коду для размещения там drawnow
.
Неудачная попытка:
Я попробовал разворачивать таймер, чтобы выполнить вызов вызова drawnow
, но он, похоже, не работает. Для самого запуска таймер drawnow
должен запускать свои обратные вызовы.
EDIT: В конце я реализовал графический интерфейс с .NET/WPF, работающий на другом потоке, поэтому он всегда остается отзывчивым и выглядит намного лучше, чем оригинальный MATLAB.