Ceci est ma première question sur StackOverflow (désolé pour mon anglais). Je vais essayer d'expliquer le problème aussi bien que je peux.Problème SWT avec syncExec()
J'ai une application swt avec une application jade de premier plan dans laquelle j'ai une barre de progression pour informer la durée de l'application. Pour actualiser cette barre de progression que j'utilise:
if(Display.getCurrent() != null) {
progress.run();
}
else {
sShell.getDisplay().syncExec(progress);
}
Progress est:
Runnable progress = new Runnable() {
public void run() {
if (progressBar.isDisposed())
return;
int percentage= (numStep*100)/maxSteps;
progressBar.setSelection(percentage);
if (numStep >= maxSteps){
label1.setText("The simulation has been completed.");
button.setEnabled(true);
}
}
};
J'essaie d'analyser le temps que cette Runnable prend et il est constant, mais quand j'analyse cette ligne sSehll.getDisplay().syncExec(progress)
prend différentes fois (entre 0 ms XXXXms)
J'ai lu ce
syncExec (Runnable runnable) caus es le thread actuel (s'il est différent du thread de l'interface utilisateur de l'affichage) pour attendre que le runnable se termine.
Mais le Runnable est constante de temps ...
Quelqu'un peut-il me guider? Je ne comprends pas pourquoi il faut parfois 3 minutes et une autre fois.
Merci
+1, bienvenue dans StackOverflow! J'ai reformaté votre code pour vous, mais il n'y a pas besoin de s'excuser pour votre anglais :) –
Merci à vous. Je sais que cela s'est passé il y a longtemps, mais j'ai été encouragé à participer aujourd'hui, enfin. – Michel