Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c nswindowsetframe非常滞后_Objective C_Macos_Cocoa_Grand Central Dispatch_Nswindow - Fatal编程技术网

Objective c nswindowsetframe非常滞后

Objective c nswindowsetframe非常滞后,objective-c,macos,cocoa,grand-central-dispatch,nswindow,Objective C,Macos,Cocoa,Grand Central Dispatch,Nswindow,我的应用程序是一个视频窗口,紧跟着另一个应用程序窗口。我正在捕获屏幕,找到其他应用程序的位置,并相应地移动我的应用程序。我有一个跟踪线程,它总是捕获和跟踪正确的位置,如果它已被更改,则会在主线程上发出更新位置的调用: void tracingThread() { while(true) { captureAndTrack(); if(positionChanged) { dispatch_async(disp

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

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

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

除了在拖动另一个应用程序时setFrame非常滞后之外,其他一切都正常。我猜这是因为发送的事件数量太大。但也许还有别的事情。您知道如何提高性能吗?

setWindowPos()的调用频率是多少?@Max大约每秒40次。(captureAndTrack需要25毫秒)