start method

Future<void> start(
  1. FgLoopCallback callback, [
  2. Map<String, dynamic>? params
])

启动循环隔离区

callback 循环执行的回调函数 params 传递给回调函数的参数

Implementation

Future<void> start(FgLoopCallback callback,
    [Map<String, dynamic>? params]) async {
  if (_isRunning) return;
  _isRunning = true;

  final receivePort = ReceivePort();
  _receivePort = receivePort;
  final message = <String, dynamic>{
    'callback': callback,
    'params': params,
    'sendPort': receivePort.sendPort,
  };

  _setupMessageListener(receivePort);

  try {
    _isolate = await Isolate.spawn(_loopIsolateEntryPoint, message);
  } catch (e) {
    stop();
    throw Exception('Error starting loop isolate: $e');
  }
}