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毫秒)