如果刷新,定时等等需要操作的话 ,一般会另外起线程做监视,然后在返回对UI做操作。RCP中对UI的操作只能由UI线程进行,这时需要从非UI线程切换到UI线程进行操作。
//
定时刷新线程
class RefreshThread extends Thread {
@Override
public void run() {
// 定时
long time = 0;
int intervalTime = 10; // 定义间隔时间
while (true) {
if (System.currentTimeMillis() - time > intervalTime * 1000) {
time = System.currentTimeMillis();
// 自定义线程启用同步UI主线程完成控件内容操作
Display.getDefault().syncExec(new Runnable() {
public void run() {
RefreshAction.getInstance().run();
}
});
}
}
}
}
class RefreshThread extends Thread {
@Override
public void run() {
// 定时
long time = 0;
int intervalTime = 10; // 定义间隔时间
while (true) {
if (System.currentTimeMillis() - time > intervalTime * 1000) {
time = System.currentTimeMillis();
// 自定义线程启用同步UI主线程完成控件内容操作
Display.getDefault().syncExec(new Runnable() {
public void run() {
RefreshAction.getInstance().run();
}
});
}
}
}
}