如果守护进程失败一次,MacOs CGDisplayIsActive()始终会失败

如果守护进程失败一次,MacOs CGDisplayIsActive()始终会失败,macos,daemon,quartz-graphics,Macos,Daemon,Quartz Graphics,我有一个项目,需要一个守护进程才能在启动时访问Mac显示器。我发现所有的MacOs CGOS显示器。。。当守护进程第一次出现时,访问例程失败。如果我睡一会儿,它们就会很好用 我想我可以试试这样的东西: while (!CGDisplayIsActive(CGMainDisplayID())) { if ( ++errCnt == 20 ) { trace(0,"CGDisplayIsActive never went true\n"); return -

我有一个项目,需要一个守护进程才能在启动时访问Mac显示器。我发现所有的MacOs CGOS显示器。。。当守护进程第一次出现时,访问例程失败。如果我睡一会儿,它们就会很好用

我想我可以试试这样的东西:

while (!CGDisplayIsActive(CGMainDisplayID())) {

    if ( ++errCnt == 20 ) {
        trace(0,"CGDisplayIsActive never went true\n");
        return -1;
    }
    trace(0,"display not active on count errCnt %d\n", errCnt);
    sleep(5);
};
但一旦cgdisactive例程失败,它似乎永远不会返回成功

这是可行的,但肯定有更好的方法:

   if (!CGDisplayIsActive(CGMainDisplayID())) {
    trace(0,"CGDisplayIsActive not true, wait a bit and then let launchd start again\n");
    sleep(5); 
    exit(0);
   }
是否有办法等待显示服务激活

TFYS