我试图单独打开盒子,因为盒子包含太多数据,导致我的主UI卡顿/冻结。有没有办法单独打开盒子并返回盒子对象?
我问了ChatGPT,它给出了这样的答案:
Future<Box> openBoxInIsolate(String boxName, String path) async {
final receivePort = ReceivePort();
await Isolate.spawn(
_openBoxInIsolate,
IsolateArgument(boxName: boxName, path: path, sendPort: receivePort.sendPort),
);
return await receivePort.first as Box;
}
void _openBoxInIsolate(IsolateArgument arguments) async {
final box = await Hive.openBox(arguments.boxName, path: arguments.path);
arguments.sendPort.send(box);
}
class IsolateArgument {
final String boxName;
final String path;
final SendPort sendPort;
IsolateArgument({required this.boxName, required this.path, required this.sendPort});
}
字符串
但这段代码给出了一个错误:
第一个月
在arguments.sendPort.send(box);
线。
1条答案
按热度按时间cunj1qz11#
在打开盒子之前使用这个
字符串