0

我正在调用一个内部类并将其作为未来的任务运行:

Runnable r = new sendEmails(ids);
FutureTask task = new FutureTask(r, null);
ExecutorService scheduler = Executors.newCachedThreadPool();
scheduler.submit(task);

看起来像这样:

private class sendLGORejectionEmails implements Runnable {

  private final String ids; 

  private sendLGORejectionEmails(String param) {
    ids = param;
  }

  public void run() {
    for (int i; i<=num_o_emails; i++) {
      Code that send emails and use 'ids' to do it;
    }
  }
}

将任务提交给调度程序后,代码将用户从该页面转发到网页我想使用 ajax 检查正在发送的电子邮件(进度条),我可以使用 get 来确定任务是否是否完成,但我想做的是能够在循环处理时询问 i 的值。这样我就可以制作一系列 ajax 帖子并将 i 转换为进度点。我怎样才能进行调用以检查任务运行时 i 的值是多少?

4

1 回答 1

0

您可以在循环外定义 for 循环中的 count 变量。

int globalCounter = 0;在您的代码中,您可以在循环之外使用新的计数器。更改循环以使用全局计数器for (; globalCounter <=num_o_emails; globalCounter ++)。这样,您可以int从循环外部调用它以查看其当前设置值。

如果您正在从此类外部访问数字,并且打算对数字进行更改(加/减/等),请确保您注意更新计数器的竞争条件(对于循环和外部方法) .

于 2013-03-04T20:21:17.020 回答