美文网首页
Swift多线程开发 - 9. 取消Operation

Swift多线程开发 - 9. 取消Operation

作者: JaiUnChat | 来源:发表于2020-04-04 10:59 被阅读0次

    在诸如用户离开当前页面的情况下,还没有完成的网络加载可能就不需要继续完成了,这时候就可以通过cancel来取消正在进行中的Operaiton

    cancelOperation状态会做如下改变

    状态 cancel前 cancel后
    isExecuting true false
    isFinished false true
    isCancelled false true

    事实上,Operation基类对于cancel的方法的紧紧只是更新了状态标志。剩余的任务处理还需要我们在子类中实现。当然,start()方法会在开头检测isCancelled属性,确保已经被取消的任务不会再开始

    至于真正的取消再执行中的任务,只能手动在实际任务代码中去检测当前的状态是不是isCancelled,如果是的话就终止任务,比如上传下载的进度回调方法中。
    或者重写cancel()方法,主动对正在执行中的任务进行终止操作,如果当前的任务支持种终止的话。


    作者博客地址

    系列文章链接

    相关文章

      网友评论

          本文标题:Swift多线程开发 - 9. 取消Operation

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