Apple的Threading Programming Guide声明:
虽然适合偶尔使用 线程之间的通信,你 不应该使用 performSelector:onThread:withObject:waitUntilDone: 时间关键或频繁的方法 线程之间的通信。
这引出了一些问题:然后,这是频繁的线程间通信的可接受方法,以及为什么是performSelector:onThread:withObject:waitUntilDone:特别不推荐。
ps:自然不要等到完成。
答案 0 :(得分:3)
他们不建议使用它的原因可能是因为这有很多开销。它也适用于运行NSRunloop
的线程。这对于从辅助线程更新UI非常有用。
对于更重型的提升,您应该使用共享内存(带锁或无锁算法)进行线程间通信。或者甚至更好地使用像NSOperationQueue或Grand Central Dispatch这样的东西,如果您的问题允许,不要担心自己进行通信和同步。