我为 Mac 编写了一个应用程序,它被设计为状态栏项目。但是,当用户从状态栏打开菜单时,主运行循环会被阻塞,直到它关闭。由于此应用程序响应套接字上的消息,因此在菜单打开时它无法执行任何操作是一个问题。
我尝试从单独的线程设置状态项并将套接字安排在不同的线程上,但没有骰子。有什么好的方法可以解决这个问题吗?
更新:
我现在已经解决了这个问题。我使用的是NetSocket套接字包装器,它的异步特性使得在不同的线程上打开和观察变得非常困难。我切换到SmallSockets(另一个 Objective-C 套接字包装器),因为它是同步的,所以我能够打开一个套接字并直接在单独的线程上观察它。