Objective-C: 在特定的 NSThread 中执行块或函数

Objective-C: Execute block or function in specific NSThread

NSObject 有一个方法 -performSelector:onThread:withObject:waitUntilDone: 允许在特定的 NSThread.

中对调用对象执行任何方法

在特定的NSThread中是否有类似且方便的方法来执行 C 风格的函数或块?

NSThread API 主要基于选择器。在 iOS 10 和 macOS 10.12 中,线程的 initializing or detaching 有基于块的 API,但不用于在现有 NSThread 上执行某些任务。如果你想使用基于块的 API,你通常会使用调度或操作队列,这让你摆脱了自己管理 NSThread 个实例的困境。

但是如果你 google "NSThread block extension",你会看到有简单的第三方 API 为 NSThread 提供块方法。例如,GTMNSThread+Blocks.h or NSThread-MCSMAdditions.