Illegal argument in isolate message: (object extends NativeWrapper - Library:'dart:ui' Class: Path)

注意 isolate 开启的线程不能在类里面,不然就是主线程了

///发送guid
void startDownLoad(String guid) async {
  ReceivePort receivePort = ReceivePort();
  receivePort.listen((message) {
    if(message is SendPort){
      message.send(guid);
    } else {
      print("message=====$message");
    }
  });
  await Isolate.spawn(dataLoader, receivePort.sendPort);
}

void dataLoader(SendPort sendPort) {
  final receivePort2 = ReceivePort();
  sendPort.send(receivePort2.sendPort);
  receivePort2.listen((message) {
    if (message is String) {
      print("message=====$message");
      if (message == 'send') {
        sendPort.send("get");
      }
    }
  });
}

dataLoader 必须是顶层函数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容