如果刷新,定时等等需要操作的话 ,一般会另外起线程做监视,然后在返回对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();
}
});
}
}
}
}