ios 取消 dispatch_async 任务

ios cancel dispatch_async task

我有一个上传图片和视频到服务器的后台任务。

用户可以中途取消本次操作

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

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

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

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

使用这个可能是更好的解决方案。杀死它是一项冒险的尝试,可能会导致一些不稳定和不可预测的行为。杀死线程通常不是一个好主意,因为我们不一定要遵循分配和保留。