0

在此处输入图像描述我通过以下方式使用 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]

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

我怎样才能阻止它?

4

2 回答 2

1

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

于 2012-09-11T14:11:34.180 回答
0

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

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

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

于 2012-09-13T10:38:38.283 回答