NativeCallable<T extends Function>.isolateLocal 构造函数
- @DartRepresentationOf("T") Function callback,
- {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.");
}