1

“任务是一次性的类,不能重复使用。” 来自 Java FX 2 的 javadocs

说一个类不能被重用是什么意思?如果我创建它的一个实例,我肯定可以一次又一次地使用它 - 如下所示?

    Task<Integer> task = new Task<Integer>() { // task example in javadocs
         @Override protected Integer call() throws Exception {
             int iterations;
             for (iterations = 0; iterations < 100000; iterations++) {
                 if (isCancelled()) {
                     break;
                 }
                 System.out.println("Iteration " + iterations);
             }
             return iterations;
         }
     };

for(int i=0; i<5; i++) { // reusing the task 5 times
       Thread th = new Thread(task);
         th.setDaemon(true);
         th.start();
}
4

1 回答 1

1

这正是你想的那样。Task 的实例只能使用一次。这可能是实际实现的限制,或者向您保证放入任务中的代码只会被调用一次。即使它让您忽略该规定,您也可能不应该这样做。

您链接的文档表明您应该将Service用作可重用的类似任务的对象。似乎 Service 有一个方法 createTask() 可以根据需要创建其任务实例。也许有更多 Java FX 2 经验的人可以对此进行扩展。

于 2012-12-04T20:18:23.580 回答