暂停执行主线程直到NSWindow关闭

时间:2014-07-02 02:19:27

标签: objective-c grand-central-dispatch nsthread nsobject performselector

我是objective-c的新手。我想暂停主线程的执行,直到我的应用程序keyWindow已关闭。我试过通过以下代码

[mywindow performSelector:@selector(isVisible:) onThread:[NSThread currentThread] withObject:self waitUntilDone:YES];

它保持执行。关闭mywindow主线程后不执行(暂停在同一行)。我该怎么办?

1 个答案:

答案 0 :(得分:1)

这是不可能的;这是一个悖论:负责窗口关闭的代码必须在主线程上发生(因为它是AppKit / UI代码)。如果阻止主线程等待窗口关闭,则窗口永远不会关闭,因为主线程被阻塞。在逻辑上关闭窗口之前阻止主线程的所有尝试都会减少死锁。