NSOperation并使用方法运行类

时间:2011-12-09 02:25:46

标签: cocoa nsoperation

假设我有一个类,* classMain是这个类的对象。现在这个类作为实例方法 - performAction。所以通常运行该方法,我会这样做:

[classMain performAction]

现在如果我想使用NSOperationQueue来运行它,我会这样做:

NSOperationqueue *opQueue = [[NSOperation alloc] init];
[opQueue addOperation: classMain].

我想要做的是将[classMain performAction]添加到队列中,这样我就可以运行我想要的方法了吗?

还有更好的推荐方法在10.7中运行线程(所以我的应用程序没有被锁定)?

1 个答案:

答案 0 :(得分:0)

有很多方法可以运行线程并在不同的线程上运行各种操作。您可能会发现此资源很有用:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html

如果您只是想要在后台运行而不锁定应用程序的简单任务,您可能会发现最直接的解决方案是使用performSelectorInBackground:withObject:

至于推荐哪种方法,它实际上取决于您的具体用例以及您要卸载到单独线程的工作类型。