Wuchuheng Isolate Channel | Coderz Repository

wuchuheng_isolate_channel

Last updated:

0 purchases

wuchuheng_isolate_channel Image
wuchuheng_isolate_channel Images

Free

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: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.