报错原因
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: IsolateSpawnException: Unable to spawn isolate: Unsupported isolate URI:
未处理的异常:IsolateSpawnException:无法生成隔离:不支持隔离 URI:
安卓调试器中的显示
直接使用dart来运行则正常
main.dart
import 'dart:isolate';main(){start_task();canteen_task();init();
}//打印时间戳
start_task(){print('先执行的任务---打印爆破前的时间戳:'+DateTime.now().microsecondsSinceEpoch.toString());}
canteen_task() async{print('新线程创建----计划启动');ReceivePort ayi= await ReceivePort();SendPort ayi_son =ayi.sendPort;Isolate childIsolate =await Isolate.spawnUri(Uri(path: "childIsolate.dart"),['data1','data2','data3'],ayi_son);ayi.listen((message) {print("主线程接收数据");print("主线程接收的数据下标0的是:$message[0]");print("主线程接收的数据下标1的是:$message[1]");print("主线程接收的数据下标2的是:$message[2]");if(message[1]==1){}else if(message[1]==2){ayi.close();childIsolate.kill();print('子线程已经释放');}});
}
init(){print('项目初始化----消耗时间中------');}
childIsolate.dart
import 'dart:io';
import 'dart:isolate';main(List<String> args,SendPort mainSendPort){///接收的第一个参数 是主线程发送过来的参数///接收的第二个参数 是主线程发送过来的发送方法---也就是把孩子发过来了,这个孩子能够向他妈哪里发送东西///print("新线程接收到的参数:$args");///向孩子他妈哪里发送一个ListmainSendPort.send(["开始执行操作0",0]);///把孩子吊起来打1秒sleep(Duration(seconds: 1));///向孩子他妈哪里发送一个ListmainSendPort.send(["开始执行操作1",1]);///把孩子吊起来打1秒sleep(Duration(seconds: 1));///向孩子他妈哪里发送一个ListmainSendPort.send(["开始执行操作2",2]);///把孩子吊起来打1秒sleep(Duration(seconds: 1));
}