Objective C - performSelectorInBackground V.S detachNewThreadSelector?

时间:2011-02-28 23:50:25

标签: objective-c multithreading pthreads nsthread

detachNewThreadSelector和performSelectorInBackground都用于在后台调用方法。

这两种方法有什么区别吗?或者他们都以同样的方式工作?

1 个答案:

答案 0 :(得分:4)

它们基本上是相同但略有不同的范例。在幕后,他们完全一样。唯一真正的区别是-[performSelectorInBackground:withObject:]遵循所有其他 performSelector 样式方法,因为它们是在NSObject上定义的,而实际上是消息定义了您希望执行的选择器。

通常,您几乎不必调用这些方法中的任何一种。赞成使用Grand Central Dispatch或NSOperationNSOperationQueue来分析其他线程上的昂贵操作。 GCD和NSOperation类都可以为您提供内存管理,线程池管理以及使用旧式调度方法所遗漏的许多其他内容。