NativeCallable<T extends Function>.isolateLocal 构造函数

NativeCallable<T extends Function>.isolateLocal(
  1. @DartRepresentationOf("T") Function callback, {
  2. Object? exceptionalReturn,
})

构建一个必须从创建它的同一线程调用的 NativeCallable

如果 callback 抛出异常,原生函数将返回 exceptionalReturn,它必须可以赋值给 callback 的返回类型。

返回的函数地址只能在当前 isolate 的 mutator(主)线程上调用。如果在任何其他线程上调用,将导致进程终止。使用 NativeCallable.listener 创建可以从任何线程调用的回调。

Pointer.fromFunction 不同,NativeCallable 可以从任何 Dart 函数或闭包构建,而不仅仅是静态或顶级函数。

当不再需要此回调时,必须调用 close。创建回调的 Isolate 将一直保持活动状态,直到调用 close。调用 NativeCallable.close 后,从原生代码调用 nativeFunction 将导致未定义的行为。

实现

factory NativeCallable.isolateLocal(
    @DartRepresentationOf("T") Function callback,
    {Object? exceptionalReturn}) {
  throw UnsupportedError("NativeCallable cannot be constructed dynamically.");
}