我有两个UI线程。 我想确保第一个完成运行,然后运行另一个。 我怎么能这样做? 非常感谢!
UIJob uiJob = new UIJob("settext1") {
public IStatus runInUIThread(IProgressMonitor ipm) {
webBrowser.setText(finalContent);
return Status.OK_STATUS;
}
};
uiJob.schedule();
UIJob uiJob2 = new UIJob("settext2") {
public IStatus runInUIThread(IProgressMonitor ipm) {
webBrowser.execute(executeMoreFunction);
return Status.OK_STATUS;
}
};
uiJob2.schedule();
答案 0 :(得分:1)
答案 1 :(得分:-1)
在join
之后调用schedule
方法。
等到这个工作完成。这个方法将阻塞调用线程,直到 作业已完成执行,或直到此线程被中断。如果工作 尚未安排,此方法立即返回。一份工作一定不能 从其run方法的范围内加入。 如果在一个从内部重新安排自己的作业调用此方法 运行方法,连接将在第一次执行结束时返回。 换句话说,join将在第一次退出该作业时返回 RUNNING状态,或者一旦该作业进入NONE状态。 如果在作业管理器暂停时调用此方法,则此作业 只有在已经运行时才会加入;如果这份工作在等待或睡觉, 此方法立即返回。 请注意,使用join时存在死锁风险。如果调用线程拥有 联接线程正在等待的锁或对象监视器,死锁 将会发生。
了解详情:http://kickjava.com/src/org/eclipse/core/runtime/jobs/Job.java.htm#ixzz0qWh6Ahhe