objective-c - Mac OS X 应用程序在其窗口没有焦点时速度变慢

标签 objective-c xcode macos swift osx-yosemite

我正在使用 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/

相关文章:

php - 设置MySQL root密码时无法连接到 'localhost'处的服务器

ios - 如何通过网页链接打开appStore?

ios - 从后台恢复后访问核心数据 NSManagedObject 会使应用程序崩溃

iphone - 作为 subview 访问时如何为uibutton设置图片

ios - NSLocationAlwaysUsageDescription/NSLocationWhenInUseUsageDescription : where to put translations

xcode - 使用 Xcode 5 支持 iPhone 5 屏幕的问题

xcode - 函数调用的参数过多,应为 0,实际为 3

iphone - iOS 在数组中存储和加载多个 Web View

结合 C 和汇编代码

arrays - Swift 从数组返回字符串