我有一个以某种方法启动的 WM:
public void someMethod(Params pararms){
WorkManager wm = (WorkManager) ic.lookup(CONTROL_WORK_MANAGER);
ArrayList<WorkItem> workItems = Lists.newArrayList();
List<Work> works = getSomeWorks();
for (Work work : works) {
workItems.add(wm.startWork(work));
}
//after all works have been started, I just wait for them to be finished using join method:
wm.join(workItems, WorkManager.JOIN_AND, (int) WorkManager.INDEFINITE);
// "other code"
}
someMethod()
由不同的线程调用,问题wm.join()
不在于只等待给定的工作完成,而是等待所有线程启动的所有工作。最终"other code"
在应用程序中的每一项工作完成时执行。
它应该是这样吗?如果是这样,我可以修复它,所以每个wm.join()
人都只等待“它的”工作完成吗?
WAS 版本是 8.5.5.11
谢谢!