NSWindow setFrame非常滞后

时间:2015-10-22 14:08:56

标签: objective-c macos cocoa grand-central-dispatch nswindow

我的应用程序是一个跟随另一个应用程序窗口的视频窗口。我正在捕捉屏幕,找到其他应用程序的位置并相应地移动我的。我有一个跟踪线程,总是捕获并跟踪正确的位置,如果它已被更改,则调度更新主线程上的位置:

void tracingThread()
{
    while(true)
    {
        captureAndTrack();
        if(positionChanged)
        {
            dispatch_async(dispatch_get_main_queue(), ^{ setWindowPos(); });
        }
    }
}

void setWindowPos()
{
    [window setFrame:_newFrame display:YES];
}

除了拖动其他应用程序时setFrame非常滞后这一事实外,一切正常。我的猜测是因为发送的事件数量。但也许还有别的东西。任何想法如何才能提高性能?

0 个答案:

没有答案