主要内容

cancel

停止在后台运行的函数

    语法

    说明

    cancel(F) 停止 Future 数组 F 的每个排队或正在运行的元素。

    对于 F 中每个不具有 State 属性 'finished' 的元素,cancelState 属性设置为 'finished'。所有已取消的 Future 元素都在 Error 属性中指示执行已取消。

    您无法通过按下 Ctrl+C 来中断某些函数和操作,例如 save。当您使用 parfevalparfevalOnAll 运行这些函数时,cancel 无法停止这些 future。请使用 delete (Parallel Computing Toolbox) 关闭池并强制 MATLAB® 停止任何正在运行的函数和操作。

    注意

    不推荐将 delete 与后台池结合使用。请改用 cancelAll

    示例

    示例

    全部折叠

    此示例说明如何停止在后台运行的 MATLAB 函数。当您使用 parfeval 在后台运行函数时,MATLAB 会立即返回一个 Future 对象。长时间运行的函数会阻止其他函数在后台运行。要停止运行该函数,您必须使用 cancel 函数,而不是选择实时编辑器 > 运行 > 停止

    使用 parfeval 运行 pause(Inf) 而不检索任何输出。将 backgroundPool 指定为在后台运行该函数的第一个参量。当您使用 parfeval 时,系统会创建一个 Future 对象。

    f = parfeval(backgroundPool,@pause,0,Inf);

    检查 Future 对象的状态。

    f.State
    ans = 
    'running'
    

    当您运行 parfeval 时,系统会调度在后台运行的函数。当后台池没有足够的资源来运行该函数时,Future 将处于 'queued' 状态。当函数由后台池运行时,Future 将处于 'running' 状态。

    要停止该函数在后台运行,请取消 Future 对象。

    cancel(f)
    f.State
    ans = 
    'finished'
    

    该函数现在处于 'finished' 状态。

    输入参数

    全部折叠

    输入 Future,指定为 parallel.Future 标量或数组。

    示例: F = parfeval(backgroundPool,@magic,1,3);

    版本历史记录

    在 R2013b 中推出

    另请参阅

    (Parallel Computing Toolbox) | | | | |