Utilité de DRAWNOW dans les fonctions de fermeture des fenêtres d'application multi-fenêtres
Bonjour,
suite à un problème rencontré je poste ce message.
L'idée est que la fermeture d'une fenêtre peut prendre un certain temps et empêcher la bonne exécution de fonctions qui devraient s'exécuter ensuite (en supposant l'appel d'une fenêtre suivi de l'attente d'une réponse).
Le cas précis dans lequel j'ai rencontré ce problème est le suivant :
lors de l'exécution du programme une nouvelle fenêtre peut être ouverte (par exemple demande de validation d'action). Une fois la réponse de l'utilisateur obtenue (clic sur OK), la fenêtre se ferme et le programme doit envoyer des données via le port série. Problème : pour quelques-unes des premières trames Matlab renvoie un 'Timeout' (normalement Matlab attend une réponse dans les 5s mais ne la voit pas).
Ce problème est éliminé en forçant le raffraîchissement graphique dans la fonction de fermeture ou avant l'envoi de trames ou à tout autre endroit adéquat.
ex dans le callback d'un bouton de validation :
ou dans le programme principal
Code:
1 2 3
| choice = questdlg('Are you sure you want to delete the profile?', ...
'Delete Profile', 'Yes', 'No', 'No');
drawnow; |
Je suppose que cela peut poser problème dans d'autres cas de figure c'est pourquoi je poste ici.
Si quelqu'un sait exactement ce que fait Matlab lors de la fermeture d'une fenêtre ou à des remarques à faire sur les problèmes de raffraîchissement graphiques, elles sont les bienvenues.