达特是否有调度?(Does Dart have a scheduler?)

2019-08-20 00:46发布

我在看但从服务器端点镖。

是否有可能在特定的时间或X倍小时执行分离调度? 我想对石英的在Java世界的线条。

Answer 1:

飞镖有延迟,重复任务的几个选项,但我不知道石英镖(尚未端口的... :)

这里有最基础的:

  • Timer -简单一些延迟后运行的函数
  • Future -更强大的,可组合的功能,“在未来的”返回值
  • Stream -事件的稳健,组合的流。 可以是周期性的。

如果你有一个重复的任务,我会建议使用流过定时器。 计时器没有错误处理的内置,因此捕获的异常可以降低你的整个程序(DART没有一个全局错误处理程序)。

这里是你如何使用流产生周期性的结果:

import 'dart:async';

main() {
  var stream = new Stream.periodic(const Duration(hours: 1), (count) {
    // do something every hour
    // return the result of that something
  });

  stream.listen((result) {
    // listen for the result of the hourly task
  });
}

你问具体菌株。 你可以产卵在程序开始的分离,并每隔一小时发送的消息。 或者,您可以产卵在节目开始时的分离,和绝缘本身可以运行自己独立的定时器或周期性流。



文章来源: Does Dart have a scheduler?