一旦我开始一个队列,它需要将近3-4分钟,如果我想在一个按钮(取消按钮)上停止此队列,那么我可以这样做吗?如果是,那么如何?
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
@synchronized(self)
{
for (int i = 0; i < (4000); i++) {
(Some methods)
}
}
});
我可以停止或关闭此帖子吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
您的第一个问题是您通过执行dispatch_ 同步
来阻止主线程但作为对你问题的回答:
脱离我的头顶:
NSOperationQueue *_myQueue; //instance var
_myQueue = [[NSOperationQueue alloc] init]; //init it
_myQueue.suspended = (buttonPressed) ? YES : NO; //toggle it like you need
for (int i = 0; i < (4000); i++) {
[_queue addOperationWithInvocation:NSInvocation for method to call];
}