开发者社区> 问答> 正文

如何暂停一个NSOperation

我怎么才能暂停一个NSOperation?在NSOPeration的文档里没有找到任何相关的东西
还有,在一个Queue里,如果暂停了一个Operation会阻塞么?还是会被滞后?

展开
收起
a123456678 2016-07-20 14:25:18 1808 0
1 条回答
写回答
取消 提交回答
  • 明显的有个cancel方法

    直接

    [operation cancel];
    cancel
    Advises the operation object that it should stop executing its task.

    • (void)cancel
      Discussion

    This method does not force your operation code to stop. Instead, it updates the object’s internal flags to reflect the change in state. If the operation has already finished executing, this method has no effect. Canceling an operation that is currently in an operation queue, but not yet executing, makes it possible to remove the operation from the queue sooner than usual.

    In OS X v10.6 and later, if an operation is in a queue but waiting on unfinished dependent operations, those operations are subsequently ignored. Because it is already cancelled, this behavior allows the operation queue to call the operation’s start method sooner and clear the object out of the queue. If you cancel an operation that is not in a queue, this method immediately marks the object as finished. In each case, marking the object as ready or finished results in the generation of the appropriate KVO notifications.

    In versions of OS X prior to 10.6, an operation object remains in the queue until all of its dependencies are removed through the normal processes. Thus, the operation must wait until all of its dependent operations finish executing or are themselves cancelled and have their start method called.

    For more information on what you must do in your operation objects to support cancellation, see “Responding to the Cancel Command.”

    Availability
    Available in iOS 2.0 and later.
    See Also
    – isCancelled
    Related Sample Code
    MVCNetworking
    Declared In
    NSOperation.h

    2019-07-17 19:58:49
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载