2016-09-07 11 views
0

同じ機能の出力を比較するのに問題があります。私は、この値を保存し、Threadを開きたい私のメインフォームで同じ瞬間に同じ機能の出力を比較する

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

。この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を使用すると、1つのスレッドを開始して定期的に値を確認してから、古い値と比較できます。ここではチュートリアルの使用方法ScheduledExecutorService

関連する問題