Questa è la mia prima domanda su StackOverflow (mi dispiace per il mio inglese). Cercherò di spiegare il problema come posso.Problema SWT con syncExec()
Ho un'applicazione swt con un'applicazione in primo piano in cui ho una barra di avanzamento per informare la durata dell'applicazione. Per aggiornare questa barra di avanzamento che uso:
if(Display.getCurrent() != null) {
progress.run();
}
else {
sShell.getDisplay().syncExec(progress);
}
Il progresso è:
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);
}
}
};
cerco di analizzare il tempo che questo Runnable prende ed è costante, ma quando analizzo questa linea sSehll.getDisplay().syncExec(progress)
prende tempi diversi (da 0 ms a XXXXms)
ho letto questo (eseguibile Runnable) caus
syncExec es il thread corrente (se è diverso dal thread dell'interfaccia utente del display) per attendere che il runnable termini.
Ma la Runnable è costante di tempo ...
Può qualcuno mi guida? Non capisco perché a volte occorrono 3 minuti e qualche altra volta.
Grazie
+1, benvenuto su StackOverflow! Ho riformattato il codice per te, ma non è necessario scusarsi per il tuo inglese :) –
Grazie a te. So che questo si è seduto molto tempo fa, ma alla fine sono stato incoraggiato a partecipare, finalmente. – Michel