我用Java制作了ThreadPool
。我以下列方式使用它。
public Image calculateObject() {
Image img;
Task task = new Task() {
@Override
protected Object call() throws Exception {
//Calculate the Image.
}
}
threadPool.addTask(task);
//Wait for task completion.
return img;
}
很显然,我想等到ThreadPool
处理完任务并创建Object
后再从函数返回。我该怎么做,我应该在我的wait
中实现某种ThreadPool
函数吗(我将如何去做?)?我是否完全误解了ThreadPool
的观点,并且很愚蠢?
为澄清起见,我的ThreadPool
的主要目的是为所有到达的ProgressBar
做Task
,还要确保完成重要的Task
首先。
编辑:因此,正如HoverCraftFullOfEels指出的那样,我的问题实际上是很愚蠢的。我将尝试进一步阐明问题。因此,我想制作一个函数,该函数将启动一个Thread
并计算一个Image
并在完成后返回此值。图像的创建可能需要长达10分钟的时间,我希望能够一次创建多个图像,但参数稍有不同。我也不希望这种情况发生时GUI锁定。该函数完成后,我想返回完成的Image
,以便将其保存。
将这个函数改成Task
并在每次我想做一个Image
时运行任务是个好主意吗?然后我怎么从Image
那里得到这个ThreadPool
?