class Task {
Future<bool> run() {
// some functionality
}
}
我需要在几种模式下运行Task()。run():
我建议(并且我之前也是这么认为的)使用流侦听器,该侦听器将侦听自动(定期)和“手动”事件,即
// Queue
final queue = StreamController<dynamic>.broadcast().
// Task queue listener
queue.stream.listen(() {
Task().run();
})
// Periodic async task
Stream.periodic(Duration(seconds:30),
(count) => count).listen((count) {
queue.sink.add(value);
});
// Manual async task
void addAsyncTask() {
queue.sink.add(value);
}
以上代码允许异步执行任务。但是可以同步使用流事件吗?即
// Manual sync(!) task
void addSyncTask() {
//queue.sink.add(value);
// send to stream
// then wait until task completed
}
是否有可能使用流?