当Mac OS X应用程序窗口没有焦点时,它会变慢

时间:2015-07-10 11:46:54

标签: objective-c xcode macos swift yosemite

我正在使用XCode 6.1开发SWIFT和ObjC的MAC OS X应用程序。 该应用程序是一个服务器,它在主线程运行循环中使用CFSocketRef。

当应用程序窗口没有关注它时,应用程序会变慢,服务器会延迟从客户端收到消息。

这是正常的(没有焦点的应用程序减慢)? 如果它是正常的,有没有办法设置主线程优先级,以便如果应用程序没有焦点,它继续以相同的方式运行?

1 个答案:

答案 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!)
  }
}