0

我有一个名为“startTask”的无效方法。

单击按钮时,我在后台启动“startTask”,如下所示:

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

我想在单击按钮时取消此过程,但是我不知道如何执行此操作,有人可以帮忙吗?

提前致谢

4

1 回答 1

0

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

编辑——例如

创建一个继承 NSOperation 的简单类

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

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

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

这是 iOS 的一个问题,但我相信iPhone 上的 Cocoa NSOperation应该是一样的

于 2012-06-08T22:05:36.050 回答