私は専門家ではなく、初心者です。だから私はあなたに私のためのコードを書くことを親切にお願いします。10分ごとに機能を呼び出す
CLASS A
とCLASS B
の2つのクラスがあり、CLASS B
の内部にはfunb()
という機能があります。 10分ごとにこの機能をCLASS A
から呼び出したいと思います。
あなたはすでに私にいくつかのアイデアを与えていますが、私はかなり理解していませんでした。
サンプルコードを投稿できますか?
私は専門家ではなく、初心者です。だから私はあなたに私のためのコードを書くことを親切にお願いします。10分ごとに機能を呼び出す
CLASS A
とCLASS B
の2つのクラスがあり、CLASS B
の内部にはfunb()
という機能があります。 10分ごとにこの機能をCLASS A
から呼び出したいと思います。
あなたはすでに私にいくつかのアイデアを与えていますが、私はかなり理解していませんでした。
サンプルコードを投稿できますか?
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class ClassExecutingTask {
long delay = 10 * 1000; // delay in milliseconds
LoopTask task = new LoopTask();
Timer timer = new Timer("TaskName");
public void start() {
timer.cancel();
timer = new Timer("TaskName");
Date executionDate = new Date(); // no params = now
timer.scheduleAtFixedRate(task, executionDate, delay);
}
private class LoopTask extends TimerTask {
public void run() {
System.out.println("This message will print every 10 seconds.");
}
}
public static void main(String[] args) {
ClassExecutingTask executingTask = new ClassExecutingTask();
executingTask.start();
}
}
遅延を変更するだけ... –
TimerTaskは廃止され、ExecutorServiceおよび関連する実装に置き換えられました。 – skaffman
本当ですか?そう言っているものは何も見つかりません。私はあなたの情報源を見ることに興味があります。ありがとう! :) –
はScheduledExecutorServiceを見てください:ここで
は時間の10秒ごとにビープ音が鳴りScheduledExecutorServiceを設定する方法を持つクラスです:
import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
final Runnable beeper = new Runnable() {
public void run() { System.out.println("beep"); }
};
final ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
scheduler.schedule(new Runnable() {
public void run() { beeperHandle.cancel(true); }
}, 60 * 60, SECONDS);
}
}
public class datetime {
public String CurrentDate() {
java.util.Date dt = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(dt);
return currentTime;
}
public static void main(String[] args) {
class SayHello extends TimerTask {
datetime thisObj = new datetime();
public void run() {
String todaysdate = thisObj.CurrentDate();
System.out.println(todaysdate);
}
}
Timer timer = new Timer();
timer.schedule(new SayHello(), 0, 5000);
}
}
てみてくださいこの。これは、設定された分ごとにrun()関数を繰り返します。設定した分を変更するには、MINUTES変数を変更してください。
int MINUTES = 10; // The delay in minutes
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() { // Function runs every MINUTES minutes.
// Run the code you want here
CLASSB.funcb(); // If the function you wanted was static
}
}, 0, 1000 * 60 * MINUTES);
// 1000 milliseconds in a second * 60 per minute * the MINUTES variable.
輸入を忘れないでください!
import java.util.Timer;
import java.util.TimerTask;
詳細情報については、ここに行く:
http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html http://docs.oracle.com/javase/7/docs/api/java/util/TimerTask.html
が、私は有効な質問があります。この背後にどこかだと思います。それが私が編集した理由です。 – balpha
@balpha:あなたはそこでいくつかの魔法を使いました: –