可可 - NSThread和First Responder

时间:2011-01-10 14:16:38

标签: objective-c cocoa xcode nsthread

当我启动第二个后台线程并暂停主线程时,我的第一响应者是否仍在执行?例如,我有一个名为-flagsChanged的覆盖方法,并且想知道如果主线程处于脱机状态,它是否仍然处于活动状态。

谢谢,

凯文

1 个答案:

答案 0 :(得分:4)

请勿暂停主线程,因为the main thread is responsible for handling events并且您的应用程序UI将无法响应。如果主线程暂停,它将不会处理事件,因此它不会将关键事件发送给第一响应者。

如果您认为需要暂停主线程,则可能需要重新设计程序,以便需要休眠的行为(如果确实需要休眠)将偏移到辅助线程。如果需要从辅助线程更新用户界面,则应使用-performSelectorOnMainThread:withObject:waitUntilDone: