wuchuheng_isolate_channel

Creator: coderz1093

Last updated:

0 purchases

wuchuheng_isolate_channel Image
wuchuheng_isolate_channel Images

Languages

Categories

Add to Cart

Description:

wuchuheng isolate channel

wuchuheng_isolate_channel







This a library to simplify isolate thread communication. It abstracts the data transfer between isolate 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 #
Depend on it
Run this command:
With Dart:
$ dart pub add wuchuheng_isolate_channel
copied to clipboard
With Flutter:
$ flutter pub add wuchuheng_isolate_channel
copied to clipboard
Usage #
import 'package:wuchuheng_isolate_channel/src/service/task/index.dart';
import 'package:wuchuheng_isolate_channel/wuchuheng_isolate_channel.dart';

enum ChannelName { channel1, channel2, channel3, channel4 }

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

///Main thread code.
final channel = task.createChannel(name: 'channelName')
..listen((message, channel) async => print('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<ChannelName>((message, channel) async {
print(message); // print: Are you OK? Isolate task
channel.send('Nice!');
});
final channel2 = task2.createChannel(name: ChannelName.channel1);
final result = channel2.listenToFuture();
channel2.send('Are you OK? Isolate task');
print(await result); // print: Nice!
}
copied to clipboard
Additional information #
contribute to the package, how to file issues, what response they can expect
from the package authors, and more.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.