在异步和同步模式下运行

时间:2019-07-19 14:32:40

标签: asynchronous flutter stream

class Task {
    Future<bool> run() {
       // some functionality
    }
}

我需要在几种模式下运行Task()。run():

  1. 异步(定期)运行。
  2. 异步(强制)运行。
  3. 同步运行。

我建议(并且我之前也是这么认为的)使用流侦听器,该侦听器将侦听自动(定期)和“手动”事件,即

// 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
}

是否有可能使用流?

0 个答案:

没有答案