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.");
}