我已经构建了服务器应用程序,并且将来需要安排一些命令。像这样:
On 28 oktober 2018 at 13.00 print('Hello, World!');
这样做的最佳可能性是什么?
答案 0 :(得分:2)
要在将来的某个时间安排活动,可以使用Timer
或Future.delayed
](https://api.dartlang.org/stable/2.0.0/dart-async/Future/Future.delayed.html)。
它们都以Duration
作为参数,这是等待的时间,而不是触发的特定时间。 (这两种方式相似并不是巧合,将来的构造方法在内部使用计时器)。
对于这样的事情,我将使用计时器。 示例:
DateTime whenToRun = DateTime(2018, 10, 28, 13, 0);
// Calculate the length of the duration from now to when we should run.
Duration durationUntil = whenToRun.difference(DateTime.now());
// (Maybe add a check that the duration isn't negative, in case we are
// already past the point in time).
Timer timer = Timer(durationUntil, () {
print("Hello, World!"); // or whatever you want.
});
这将安排一个计时器,该计时器将在2018年10月28日的13:00触发。
如果您改变主意并希望在此之前取消计时器,则可以使用timer.cancel()
。
这很明显地假设您的程序一直运行直到时间到了。