Faits sur Matlab:GUI réactif sans appeler Matlab drawnow() directement
- UI Java Swing est Matlab.
- MATLAB a une excellente interopérabilité avec Java, il est possible d'initialiser des objets Java et d'appeler leurs méthodes directement à partir du code MATLAB, il est même possible de passer en Java des listeners définis par MATLAB!
Mon problème:
Matlab ne propose pas de fils de fond, afin de rendre l'interface utilisateur Matlab répondre, nous devons appeler la fonction drawnow qui débusque la file d'attente Swing EDT, vous pouvez aussi here et here. C'est un fait connu, jusqu'ici tout va bien.
Mais maintenant j'ai un client dont le code qui effectue le calcul est un fichier p MATLAB (crypté) donc je n'ai pas accès au code pour y mettre drawnow
.
Tentative infructueuse:
J'ai essayé filer une minuterie pour faire le travail d'appeler drawnow
mais il ne semble pas fonctionner - même minuterie a besoin d'un précédent drawnow
pour tirer ses callbacks. À la fin j'ai implémenté l'interface graphique avec .NET/WPF fonctionnant sur un autre thread, donc il reste toujours réactif et semble beaucoup mieux que MATLAB d'origine.
C'est une solution très laide, mais cela pourrait fonctionner. ** Je dois le tester avant de pouvoir le noter **. – Mikhail