如何停止使用NSOperationQueue启动的任务?

时间:2012-09-11 13:51:14

标签: iphone ios nsoperationqueue

enter image description here我以下面的方式使用NSOperationQueue创建了一个流程:

queue = [[NSOperationQueue alloc]init];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self 
                                                                           selector:@selector(loadDataWithOperation)object:nil];
[queue addOperation:operation];
[operation release];

loadDataWithOperation方法中,我编写了用于打印无限数字的代码。

现在我调用了cancelAppOperations来停止执行,我也尝试将暂停值设置为YES

[queue setSuspended:YES]

即使进程仍在运行,我也会使用“停止”按钮调用停止方法。它在同一个班级打电话。

我该如何阻止它?

2 个答案:

答案 0 :(得分:1)

您可以在开始执行之前向队列中的所有操作发送取消消息,但如果您的操作已在执行,则需要处理取消消息

答案 1 :(得分:0)

这里用于暂停队列                 [queue setSuspended:YES]工作正常,我在那里检查停止For循环的条件,即

if(![queue isSuspended]) 
{
        NSLog(@"elements are :%d",i);
}
else
{
    break; 
}

我将这些代码行放在“loadDataWithOperation”方法