2

我有一个向导,我需要在后台运行一个作业。我希望进度条显示作业正在运行的事实,但同时,我不希望向导的 GUI 组件被禁用。换句话说,我想在进度条在后台显示作业时继续使用向导。可能吗?

谢谢大家会帮助我!

4

1 回答 1

1

你可以,你只需要确保你启动一个新的 Job 来做后台工作,但是 UI 更新仍然发生在 UI 线程中:

    Job job = new Job("name") {
        @Override
        protected IStatus run(IProgressMonitor monitor) {
            // Do some work

            Display.getDefault().asyncExec(new Runnable() {
                @Override
                public void run() {
                    // Update UI
                }});
            return Status.OK_STATUS;
        }
    };
    job.schedule();
于 2012-10-25T15:23:25.150 回答