如何安全取消请求?

时间:2014-08-07 14:45:31

标签: ios multithreading upload download

我想知道如何安全取消下载或上传请求? 我们知道,当我们启动下载请求或上传请求时,我们将始终设置多个回调块(开始块,进度块,失败/成功/完成块),并且此请求始终在非主线程中运行。但是我们可以在主线程中取消请求。

我们可能希望它停止下载/上传,并且在我们调用cancel api后不再回调。 如果我们调用cancel api,我们也可能希望它停止下载/上传并触发回调函数。

那么如何编写代码来安全地取消下载/上传请求? 我真的不明白如何安全取消请求?

因为当您进行取消操作时,下载/上传的代码可能会在新的切片数据开始时运行,或者仍然在下载/上传数据,如果您准备,可以检查是否取消下载下一个数据,如果取消,我们回调失败的块并返回。如果没有,我们会在需要时继续新的切片数据下载/上传。

当你进行取消操作时,下载/上传的代码可能正在处理一些逻辑,例如追加/读取新数据,准备呼叫进度块....

所以让我觉得很难取消适当的。

任何人都可以告诉我做取消操作的真正逻辑是什么。

0 个答案:

没有答案