iOS可取消后台任务实现

标签 ios asynchronous cancellation

我需要一个带有 <foo> 的类执行后台任务的方法。

<foo>方法被不同的线程多次调用:每次调用此方法时,我都需要停止之前分配的后台线程并启动一个新线程,因此唯一有效的后台任务是最后创建的。

如何实现?

谢谢

最佳答案

您可以使用NSOperation 类来取消您的操作。 Refer

-(void)startMyOperation
{

    //Cancel the existing operation
    [self cancelOperation];
    self.operation = [NSBlockOperation blockOperationWithBlock:^{
   //your code to be done in the background
    }];
}

-(void)cancelOperation
{
     if(![self.operaion isFinished])
        [self.operation cancel];
}

关于iOS可取消后台任务实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24609220/

相关文章:

ios - 支持 iOS 库中的特定设备方向 - 一处更改

swift - 如何在 GCD 中停止 DispatchWorkItem?

ios - 异步请求期间显示的加载事件指示器

ios - 在 Windows 上调试 iOS Safari html 布局

asynchronous - 谷歌分析 : Mix asynchronous and synchronous tracking to track downloads using events

javascript - Html Web Worker 未按预期工作

node.js - 如何在 Node.JS 中编写异步 While 循环

javascript - 当父级被取消时,是否可以取消子级 promise ?

python - 如何从由于超时而取消的 python asyncio 协程返回值

ios - 按日期对 PHAsset 获取结果进行分组的智能方法