这是我在 StackOverflow 上的第一个问题(对我的英语感到抱歉)。我会尽力清晰地解释问题。
我有一个 SWT 应用程序,其中包含一个前台 Jade 应用程序,它具有用于显示应用程序持续时间的进度条。为了刷新此进度条,我使用以下代码:
我尝试分析这个Runnable所需的时间,发现它是恒定的,但是当我分析这行代码时
我已经阅读了这篇文章:
有人能指导我吗?我不明白为什么有时需要3分钟,而有时则不需要。
谢谢
我有一个 SWT 应用程序,其中包含一个前台 Jade 应用程序,它具有用于显示应用程序持续时间的进度条。为了刷新此进度条,我使用以下代码:
if(Display.getCurrent() != null) {
progress.run();
}
else {
sShell.getDisplay().syncExec(progress);
}
进度是:
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);
}
}
};
我尝试分析这个Runnable所需的时间,发现它是恒定的,但是当我分析这行代码时
sSehll.getDisplay().syncExec(progress)
所需时间不同(从0ms到XXXXms)。我已经阅读了这篇文章:
但是Runnable的时间是恒定的...syncExec(Runnable runnable) 会导致当前线程(如果它与显示器的用户界面线程不同)等待runnable完成。
有人能指导我吗?我不明白为什么有时需要3分钟,而有时则不需要。
谢谢