我正在使用 XCode 6.1 开发带有 SWIFT 和 ObjC 的 MAC OS X 应用程序。 该应用程序是一个服务器,它在主线程运行循环中使用 CFSocketRef。
当应用程序窗口没有焦点时,应用程序会变慢并且服务器会延迟接收来自客户端的消息。
这是否正常(没有焦点的应用速度变慢)? 如果是正常的,有没有办法设置主线程优先级,这样如果应用程序没有焦点,它会继续以相同的方式运行?
最佳答案
在我的 Controller 类中,我在 awakeFromNib
函数中添加了 beginActivityWithOptions
并且在 applicationWillTerminate
中添加了 endActivity
喜欢以下内容
class ConsoleController: NSObject
{
var process : NSProcessInfo?
var activity: NSObjectProtocol?
override func awakeFromNib()
{
process = NSProcessInfo.processInfo()
activity = process!.beginActivityWithOptions(NSActivityOptions.UserInitiated, reason: "Good")
}
func applicationWillTerminate(notification: NSNotification)
{
process!.endActivity(activity!)
}
}
关于objective-c - Mac OS X 应用程序在其窗口没有焦点时速度变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31339986/