2016-09-07 39 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