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

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

cancelOperation状态会做如下改变

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

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

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



作者博客地址

系列文章链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容