gpt4 book ai didi

objective-c - 是 performSelector :onThread:withObject:waitUntilDone: ordered?

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:00 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com