我正在使用XCode 6.1开发SWIFT和ObjC的MAC OS X应用程序。 该应用程序是一个服务器,它在主线程运行循环中使用CFSocketRef。
当应用程序窗口没有关注它时,应用程序会变慢,服务器会延迟从客户端收到消息。
这是正常的(没有焦点的应用程序减慢)? 如果它是正常的,有没有办法设置主线程优先级,以便如果应用程序没有焦点,它继续以相同的方式运行?
答案 0 :(得分:2)
在我的控制器类中,我在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!)
}
}