【问题标题】:Continous file update, recursive function?连续文件更新,递归函数?
【发布时间】:2012-03-02 10:40:51
【问题描述】:

我想根据用户通过单选按钮选择的分钟(1 分钟、15、30、45 分钟等)将信息附加到文件中。对于每个单选按钮,switch 语句中都有大小写。我发现很难定期更新文件,有没有人知道如何根据选择的任何分钟来更新文件。 time_int 是当前时间,update_point 是文件需要更新的下一个间隔点?所以请帮助使用 UPDATEFILE() 方法。

  public void radioStartTime(int t) {

    time_int = System.currentTimeMillis(); //time radio button is clicked, clock      the time on click
    System.out.println(sdf.format(time_int));

    /* a case/situation for different radio button selected*/
    switch (t) {

    case 1:
        update_point = time_int + (1*60000);
        System.out.println(sdf.format(update_point));
        UPDATEFILE????(1);
    break;

            .....

【问题讨论】:

    标签: java c++ c file function


    【解决方案1】:

    您可以考虑的三种方式:

    • 如果您可以免费包含新库,您可以查看 Quartz 调度程序。它可以处理许多复杂的调度程序用例。

    • 您还可以检查 java.util.Timer。它可以(来自 javadoc:)调度任务以供将来在后台线程中执行。任务可以安排为一次性执行,或定期重复执行。后半部分正是你所需要的。

    • 编写您自己的线程和睡眠/等待机制来实现您的目标。

    无论如何,我不认为递归是解决调度问题的正确方法。

    【讨论】:

    • 这对我来说太复杂了,我可以使用 do while 循环吗??
    • @user1106130 这听起来像方式(3)。您创建一个线程来执行任务(文件更新),并用 while 包装它,例如:while(true 或其他条件){this.wait(yourinterval); updateFile();},但是你必须小心处理一些细节,线程安全,阻塞等。
    猜你喜欢
    • 2015-09-08
    • 2021-04-23
    • 2017-10-14
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多