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 必须是顶层函数

你可能感兴趣的:(Illegal argument in isolate message: (object extends NativeWrapper - Library:'dart:ui' Class: Path))