asFunction<@DartRepresentationOf('NF') DF extends Function> 方法

DF asFunction<@DartRepresentationOf('NF') DF extends Function>({
  1. bool isLeaf = false,
})

将原生函数转换为 Dart 函数,自动序列化参数和返回值。

isLeaf 指定函数是否是叶子函数。叶子函数是小型、短运行、非阻塞函数,不允许调用 Dart 或使用任何 Dart VM API。叶子函数通过绕过一些 Dart 到原生调用序列的重型部分来调用,这减少了调用开销,使得叶子调用比非叶子调用更快。然而,这也意味着执行叶子函数的线程不能与 Dart 运行时进行协作。长时间运行或阻塞的叶子函数将延迟需要所有与隔离组关联的线程同步的操作,直到叶子函数返回。例如,如果一个组中的一个隔离区正在尝试进行 GC,而另一个隔离区在叶子调用中被阻塞,那么第一个隔离区将必须暂停并等待这个叶子调用返回。

实现

external DF asFunction<@DartRepresentationOf('NF') DF extends Function>(
    {bool isLeaf = false});