isolated 0.0.2 isolated: ^0.0.2 copied to clipboard
This package provides functionality to easily use isolates like automatically setting up the bidirectional communication and request-response functionality.
import 'dart:convert';
import 'package:isolated/isolated.dart';
const factory = IsolateBundleFactory();
Future<void> main() async {
final bundle = await factory
.startNewPingPong<IsolateBundleConfiguration, String, dynamic>(
deserialize,
(toCaller) => IsolateBundleConfiguration(toCaller),
);
final deserialized = await bundle.pingPong('{"Property": "Hello world"}');
// ignore:avoid_print
print(deserialized.toString());
bundle.cancel();
}
void deserialize(IsolateBundleConfiguration config) {
config.activateOnCurrentIsolate<PingPongMessage<String>>(
(message) {
config.toCaller.send(PingPongMessage<dynamic>(
message.id,
jsonDecode(message.value),
));
},
(cancelMessage) {},
);
}