美文网首页
Flutter Isolate

Flutter Isolate

作者: LXJDBXJ | 来源:发表于2019-10-15 17:06 被阅读0次

    external static Future<Isolate> spawn<T>(
    void entryPoint(T message), T message,
    {bool paused: false,
    bool errorsAreFatal,
    SendPort onExit,
    SendPort onError,
    @Since("2.3") String debugName});

    源码说明翻译

    1 创建并生成与当前 isolate共享相同代码的 isolate
    2 参数[entryPoint] 指定要在生成的 isolate中调用的初始函数。
    3 entry-point 函数在新的isolate中被调用,只有[Message]作为参数。
    4 函数必须是顶级函数或静态方法,可以用一个参数来调用,即编译时常量函数值,
    它至少接受一个位置参数,并且最多具有一个必需的位置参数。
    函数可以接受任意数量的可选参数,只要它可以只用一个参数来调用。
    函数不能是函数表达式的值,或者删除实例方法。
    5 通常初始的[message]包含一个[SendPort(发送端口)],这样spawner和spawnee可以相互通信。
    6 如果[paused]参数设置为“true”, isolate将在暂停状态下启动,就在用[message]调用[entryPoint]函数之前,就像通过初始调用“ isolate.pause(isolate.pausecapability)”一样。要resume entryPoint,请调用“ isolate.resume(isolate.pausecapability)”。
    7 如果提供了[errorsAreFatal]、[onExit]和/或[onError]参数,则isolate将分别使用相应的参数调用[setErrorsFatal]、[addOnExitListener]和[addErrorListener],并在 isolate开始运行之前进行处理。
    8 如果提供了[DebugName],则生成的[Isolate]将在Debugger和日志中通过此名称进行标识
    9 如果省略了[errorsAreFatal],则平台可以选择默认行为或继承当前隔离的行为。
    10 还可以对返回的isolate调用[setErrorsFatal]、[addOnExitListener]和[addErrorListener]方法,但除非隔离以[paused]形式启动,否则在这些方法完成之前,它可能已经终止。
    11 返回一个future,如果生成成功,它将用一个[isolate]实例完成。否则它将以错误完成。

    相关文章

      网友评论

          本文标题:Flutter Isolate

          本文链接:https://www.haomeiwen.com/subject/qhbnectx.html