我有一个名为'startTask'的void方法。
点击按钮,我在后台启动'startTask',如下所示:
[self performSelectorInBackground:@selector(startTask) withObject:nil];
我想在点击按钮时取消此过程,但我无法弄清楚如何执行此操作,有人可以帮忙吗?
提前致谢
答案 0 :(得分:0)
我会使用NSOperation和NSOperationQueue。这些允许取消。线程需要更多的工作才能获得信号。
编辑 - 例如
创建一个子类NSOperation
的简单类在您的实现中实现-(void)main(){
}
方法。执行操作时会调用此方法。
在要启动它的文件中,创建一个NSOperationQueue的成员变量。
如果要启动任务,请创建操作并将其添加到队列中。它将以异步方式运行,您可以取消它。
以下是针对iOS的问题,但我认为Cocoa NSOperation on the iPhone
应该是相同的