License: MIT Build Status

这是一个简化隔离线程通信的库。它将隔离线程和主线程之间的数据传输抽象成一个简单的通道,该通道只需监听数据变化并关闭通道即可,从而简化了隔离线程的数据通信。

特点

  • 通道抽象。
  • 数据监听。
  • 消息通道关闭事件。

入门

开始使用该包。

用法

import 'package:wuchuheng_isolate_channel/src/service/task/index.dart';
import 'package:wuchuheng_isolate_channel/wuchuheng_isolate_channel.dart';
import 'package:wuchuheng_logger/wuchuheng_logger.dart';

void main() async {
    /// Isolate logic code.
    final Task task = await IsolateTask((message, channel) {
        Logger.info('isolate: receive $message');
        channel.send('task data');
        channel.onClose((name) => Logger.info('Channel is closed. channel: $name.'));
    });

    ///Main thread code.
    final channel = task.createChannel(name: 'channelName')
        ..listen((message, channel) => Logger.info('Receiving isolate messages')).cancel();
    channel.send('Send data to isolate');
    await Future.delayed(Duration(seconds: 1));

    ///Turn off the channel
    channel.close();

    /// listen to future
    final task2 = await IsolateTask((message, channel) {
        channel.send(message);
    });
    final channel2 = task2.createChannel();
    final result = channel2.listenToFuture();
    channel.send('OK');
    print(await result); // print 2

}

附加信息

如何为该包贡献代码、如何提交问题、以及他们可以期待从包作者获得什么样的回应,等等。

GitHub

查看 Github