ios取消dispatch_async任务

时间:2015-04-10 09:34:08

标签: ios dispatch-async

我有一个后台任务,可以将图像和视频上传到服务器。

用户可以在中间取消此操作。

我想知道是否有一种简单的方法可以通知任务停止而不是需要检查一个布尔值来停止

(主要问题是用户可以再次返回到该过程并在"坏"视频完成上传之前重新激活布尔值)

1 个答案:

答案 0 :(得分:2)

NSOperationQueue支持取消操作。因此,例如,您可以创建一系列NSOperations并将其添加到NSOperationQueue,然后在您不需要它时将-cancelAllOperations发送到队列。

然后当用户返回时,将再次创建操作,并且请求将在队列中发送。

使用它可能是更好的解决方案。杀死它是一种冒险的努力,可能导致一些不稳定和不可预测的行为。杀死线程通常是一个坏主意,因为分配和保留我们无法遵循。