Java 进度条仅在调试模式下显示。作业加异步显示
当我在调试模式下运行应用程序时,进度条会正确显示,所有UI组件都在等待作业。但在发布模式下,UI组件仍在等待作业,但进度条并没有反映出来Java 进度条仅在调试模式下显示。作业加异步显示,java,swt,eclipse-rcp,Java,Swt,Eclipse Rcp,当我在调试模式下运行应用程序时,进度条会正确显示,所有UI组件都在等待作业。但在发布模式下,UI组件仍在等待作业,但进度条并没有反映出来 原因是什么?您不需要运行asycExec。尝试使用UIJob: UIJob是通过asyncExec在UI线程内运行的作业。 像这样: Job job = new Job("Initialize Info ") { @Override protected IStatus run(IProgressMonitor monitor) {
原因是什么?您不需要运行
asycExec
。尝试使用UIJob
:UIJob是通过asyncExec在UI线程内运行的作业。
像这样:
Job job = new Job("Initialize Info ")
{
@Override
protected IStatus run(IProgressMonitor monitor) {
//some action in job thread
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
//
//different actions with UI components.
}
});
return Status.OK_STATUS;
}
};
job.schedule();
Job job = new Job("") {
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Task..." -1);
// do what i need to do (and doesn't bother my UI)
return Status.OK_STATUS;
}
};
job.setUser(true);
job.schedule();
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
new UIJob("") {
@Override
public IStatus runInUIThread(IProgressMonitor monitor) {
// Update my UI
monitor.beginTask("UI Task..." -1);
return Status.OK_STATUS;
}
}.schedule();
super.done(event);
}
});