dont le code est ci -dessous
Code:
1
2
3
4
5
6
7
8
9 while (loopShell != null && !loopShell.isDisposed()) { try { if (!display.readAndDispatch()) { display.sleep(); } } catch (Throwable e) { exceptionHandler.handleException(e); } }
Version imprimable
dont le code est ci -dessous
Code:
1
2
3
4
5
6
7
8
9 while (loopShell != null && !loopShell.isDisposed()) { try { if (!display.readAndDispatch()) { display.sleep(); } } catch (Throwable e) { exceptionHandler.handleException(e); } }
1) c'est quoi loopShell?
2) quel évènement dans ton application ferait que loopShell.isDisposed() passe à true?
3) c'est quoi display et c'est quoi cette moche boucle d'attente active? :aie:
j'ai vérifié que cet endroit était le même
si on ne peut pas aider je vais demander du support au constructeur du produit
Cette boucle d'attente est l'horreur que SWT oblige à écrire pour qu'une fenêtre (un Shell) reste ouvert/visible (à part le null qu'on devrait tester à part).
Je n'ai pas mis le try catch : si le thread de SWT plante, plutôt que de le faire dans la boucle à chaque itération, autant le laisser remonter en haut (RuntimeException), dans le thread main.Code:
1
2
3
4
5
6
7
8
9
10
11 public static void show(Shell shell) { if ( shell!=null ) { shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } if (!display.isDisposed()) display.update(); } }
Rien compris. Quel endroit ? Le même que où ?
Quand tu poses des questions concernant quelque chose, il serait judicieux de préciser un minimum le contexte (comme pour le précédent, au moins SWT, ou poster dans le forum SWT justement).
Ensuite, cette boucle attend simplement qu'un shell soit disposé (fermé, et que les ressources systèmes soit libérées (un handle au minimum)) avant de continuer le code, ce qui se fait soit pas les moyens habituels selon l'OS (la croix en haut à droite pour windows), ou à l'invocation de dispose() justement. Donc, le problème n'est certainement pas dans cette boucle, mais au niveau du shell.
pas le droit de corrigé ce fichier
je me rapproche du concepteur du produit pour le faire