- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 Objective-C 类,它启动一个后台线程并在其上运行一个 NSRunLoop。我想从主线程向后台线程传递消息(是的,专门从主线程)。为此,我计划使用内置的 performSelector:onThread:withObject:waitUntilDone:
。
我想知道是否可以安全地假设我以这种方式发送消息的顺序将是它们在后台线程上接收的顺序。显然,如果多个线程几乎同时调用 performSelector:onThread:withObject:waitUntilDone:
,这个问题就没有实际意义了,但是因为我只会从主线程调用它,所以我保证有序排队?
最佳答案
根据 Apple 的文档:
This method queues the message on the run loop of the target thread using the default run loop modes—that is, the modes associated with the NSRunLoopCommonModes constant. As part of its normal run loop processing, the target thread dequeues the message (assuming it is running in one of the default run loop modes) and invokes the desired method.
队列通常是一种有序的数据结构。它没有声明它可以按任何顺序执行的事实意味着它们将按顺序执行。
关于objective-c - 是 performSelector :onThread:withObject:waitUntilDone: ordered?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21637793/
我正在尝试使用单独的线程来处理某些 API。 问题是我无法将 performSelector:onThread:withObject:waitUntilDone: 方法与我为此实例化的线程一起使用。
将 NSDictionary 文字作为对象传递给 -performSelector:onThread:withObject:waitUntilDone: 将导致其崩溃,因为其他线程的运行循环的自动释放
在我的 viewController 中,我有一个每 20 秒触发一次并调用位置更新的计时器。然后,当位置更新时,我通过 performSelectorOnMainThread 调用一个方法。出于某种
我尝试子类化 NSThread 以便使用一些数据来操作线程。根据文档,我想在 python 中模拟 join() : join(): Wait until the thread terminates.
我有一个 Objective-C 类,它启动一个后台线程并在其上运行一个 NSRunLoop。我想从主线程向后台线程传递消息(是的,专门从主线程)。为此,我计划使用内置的 performSelecto
这个问题在这里已经有了答案: Compiler gives warning on performSelectorOnMainThread:@selector(delegateMethod) (4 个
有没有一种方法可以让我执行一个 block 而不是一个与此方法和类似方法相对应的选择器? 我的观察者可能会接收到不是在主线程上生成的事件。如果主要是面向 UI 的,我希望在主线程上执行该操作。现在,我
我正在编写一个使用 NSURLConnection 的异步 Web 请求的应用程序,因此我有多个线程在运行。为了确保我的应用程序的主要逻辑发生在一个线程上,我大量使用 performSelectorO
我的 iPad 应用程序与 XML 提要同步,在从 NSOperationQueue 执行的 NSOperation 子类中运行同步。当它解析提要时,它会通过 performSelectorOnMai
如果通过 NSObject 的 performSelectorOnMainThread:withObject:waitUntilDone: 调用 myMethod: 中引发的异常会怎样? 特别是,我可
苹果Threading Programming Guide指出: Although good for occasional communication between threads, you sho
我是一名优秀的程序员,十分优秀!