• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

创建双向通信的 Isolate

Flutter cps12345 3周前 (01-02) 38次浏览 0个评论
import 'dart:async';
import 'dart:isolate';

Future<SendPort> initIsolate() async {
Completer completer = Completer<SendPort>();
// 获取主 Isolate 的端口
ReceivePort receivePort = ReceivePort();
// 监听来自子 Isolate 的消息
receivePort.listen((message) {
if (message is SendPort) {
completer.complete(message);
} else {
print("$message");
}
});

// 创建一个 Isolate
await Isolate.spawn(newIsolate, receivePort.sendPort);
// 返回来自子 Isolate 的 sendPort
return completer.future;
}

void newIsolate(SendPort mainReceivePort) {
// 获取当前 Isolate 的端口
ReceivePort subReceivePort = ReceivePort();
// 将当前 Isolate 的端口发送给主 Isolate
mainReceivePort.send(subReceivePort.sendPort);
// 监听主 Isolate 的消息
subReceivePort.listen((message) {
print("message from main Isolate: $message");
});
// 发送消息给主 Isolate
mainReceivePort.send("This is a message from sub Isolate");
}

void main() async{
SendPort mainToIsolate = await initIsolate();
mainToIsolate.send('This is from main isolate');
}
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址