2013-03-04 10 views
0

我打電話內部類並運行它作爲未來的任務:如何從循環運行的另一個每個interation獲得響應?

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來確定任務是否完成,但是我想要做的是能夠在循環正在處理時請求我的價值。這樣我可以製作一系列Ajax帖子並將我轉化爲進度點。我該如何做一個調查,以查看任務運行時我的價值?

回答

0

您可以在for循環中將您的count變量定義在循環之外。

在你的代碼中,你可以在循環之外使用一個新的計數器int globalCounter = 0;。更改循環以使用全局計數器for (; globalCounter <=num_o_emails; globalCounter ++)。這樣,您可以從循環外調用int以查看其當前設置值。

如果您正在訪問此課程以外的電話號碼,並且打算對號碼進行更改(添加/減去/等等),請確保注意比賽條件以更新計數器(對於循環和外部方法)。

+0

謝謝@Walls我發佈後不久我就明白了這一點。問題是現在我無法讓ajax帖子不能如此快速地開火。 – sgd 2013-03-04 20:37:45

相關問題