报错原因
[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");
///向孩子他妈哪里发送一个List
mainSendPort.send(["开始执行操作0",0]);
///把孩子吊起来打1秒
sleep(Duration(seconds: 1));
///向孩子他妈哪里发送一个List
mainSendPort.send(["开始执行操作1",1]);
///把孩子吊起来打1秒
sleep(Duration(seconds: 1));
///向孩子他妈哪里发送一个List
mainSendPort.send(["开始执行操作2",2]);
///把孩子吊起来打1秒
sleep(Duration(seconds: 1));
}