2016-09-07 40 views
0

我在比較相同功能輸出但在不同時刻有困難。在不同時刻比較相同功能輸出

public int Get_CSV_number_lane() 
{ 
    return csvfile.numberlane(); //this func return number of lane in csv file 
} 

在我的主窗體中,我想保存該值並打開Thread。這Thread檢查if (old saved value != new value){do something}

int number_of_lane = Get_CSV_number_lane(); 

Thread() 
{ 
    if(number_of_lane != Get_CSV_number_lane()) 
    { 
     println("number of lane changes"); 
     number_of_lane = Get_CSV_number_lane(); 
    } 
} 

我有一個返回一個CSV文件的行的功能。在執行期間,這個文件可以改變。我有一個Thread,用於檢查舊值(開始時的CVS行)是否與新值(CSV行現在)不同,並執行某些操作。問題在於這種檢查:舊值始終是新值。

我的問題然後,我怎麼能解決這個問題,我怎麼能存儲舊值和新的檢查?

+1

除了作風問題(例如空的,因此不必要的else塊,方法名等等 - 詳情參見Java代碼約定)有什麼問題了嗎?我不明白。 – Thomas

+0

我沒有張貼的全部代碼的原因是這麼久......對不起的.. 只是: - 我有一個返回csv文件 車道的功能 - 在執行過程中,這種文件可以更改 - 我有檢查(舊值在啓動CSV的(車道)是新價值的CSV(車道現在)不同)線程..做一些事情 的問題是這樣的檢查:舊值是每次新價值,所以我該如何解決這個問題,我如何存儲舊值並檢查新的值? – user3464250

+0

你爲什麼不把它存儲在線程中?你的例子看起來很奇怪,但我認爲'Thread()'意味着你正在創建一個新的線程實例,所以你爲什麼不傳遞原始/舊值並將其存儲在那裏? – Thomas

回答

0

如果您熟悉ExecutorService,則可以使用類似的類型 - ScheduledExecutorService:An ExecutorService that can schedule commands to run after a given delay, or to execute periodically.使用ScheduledExecutorService,您可以啓動一個線程來定期檢查您的值,然後您可以將其與舊值進行比較。這裏是教程如何使用ScheduledExecutorService