wuchuheng_isolate_channel 0.0.3 copy "wuchuheng_isolate_channel: ^0.0.3" to clipboard
wuchuheng_isolate_channel: ^0.0.3 copied to clipboard

This a library to simplify isolate thread communication.

License: MIT Build Status

This a library to simplify islate thread communication. It abstracts the data transfer between islate and the main thread into a simple channel, and the channel only needs to listen for data changes and close the channel, thus simplifying the data communication of islate.

Features #

  • channel abstraction.
  • Data Listening.
  • Message Channel Close event.

Getting started #

start using the package.

Usage #

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();
}

Additional information #

contribute to the package, how to file issues, what response they can expect from the package authors, and more.

2
likes
0
pub points
0%
popularity

Publisher

unverified uploader

This a library to simplify isolate thread communication.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

json_annotation, wuchuheng_hooks

More

Packages that depend on wuchuheng_isolate_channel