可可Mac取消后台进程

时间:2012-06-08 22:01:09

标签: objective-c xcode cocoa

我有一个名为'startTask'的void方法。

点击按钮,我在后台启动'startTask',如下所示:

[self performSelectorInBackground:@selector(startTask) withObject:nil];

我想在点击按钮时取消此过程,但我无法弄清楚如何执行此操作,有人可以帮忙吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

我会使用NSOperation和NSOperationQueue。这些允许取消。线程需要更多的工作才能获得信号。

编辑 - 例如

创建一个子类NSOperation

的简单类

在您的实现中实现-(void)main(){ }方法。执行操作时会调用此方法。

在要启动它的文件中,创建一个NSOperationQueue的成员变量。

如果要启动任务,请创建操作并将其添加到队列中。它将以异步方式运行,您可以取消它。

以下是针对iOS的问题,但我认为Cocoa NSOperation on the iPhone

应该是相同的