我使用dispatch_async在后台运行一堆项目,有时我想杀死队列中的内容 - 这可能吗?例如,此代码在视图上运行,然后用户返回屏幕.无论后退导航如何,所有这些已触发的操作都会继续运行.理想情况下,我想从运行中杀死这些项目:
dispatch_async(dispatch_get_global_queue(2, 0), ^{
for (int i=0; i<[self.manufacturers count]; i++) {
NSString *manufacturerID = [[[self.manufacturers objectAtIndex:i] ManufacturerID] stringValue];
[self doSync:manufacturerID withIndex:i setTimer:YES];
}
});
Run Code Online (Sandbox Code Playgroud)
如果我创建一个队列并命名它,然后在视图的dealloc上释放它,这将被调用,它们仍然继续运行.