spawn static method

Future<void> spawn(
  1. String name,
  2. void entryPoint(
    1. List
    ), [
  3. dynamic message
])

创建并启动一个新的isolate线程 name - isolate名称标识 entryPoint - isolate入口函数 message - 传递给isolate的消息

Implementation

static Future<void> spawn(
    String name, void Function(List<dynamic>) entryPoint,
    [dynamic message]) async {
  if (_isolates.containsKey(name)) {
    throw Exception('Isolate $name already exists');
  }

  final receivePort = ReceivePort();
  _receivePorts[name] = receivePort;

  final isolate = await Isolate.spawn(
    entryPoint,
    [receivePort.sendPort, message],
  );

  _isolates[name] = isolate;

  // 监听接收端口
  receivePort.listen((message) {
    // 处理isolate返回的消息
  });
}