我用cefpython做了一个简单的离屏渲染器。
我使用cefpython.MessageLoop()
,并且我有一个单独的线程每秒执行一些操作:
[... cefpython initialization ...]
startTime = time.time()
def main_loop():
print time.time() - startTime
threading.Timer(1, main_loop).start()
main_loop()
cefpython.MessageLoop()
这工作正常,但它会在 30 秒后变慢(然后循环每 10 秒更新一次)。
这是我得到的输出:
[CEF Python] Initialize() called
[CEF Python] CefExecuteProcess(): exitCode = -1
[CEF Python] CefInitialize()
[...]
3.11049604416
4.11594009399
5.11900210381
[...]
27.2121961117
28.2259521484
29.2369601727
[... then it updates every 10 seconds ...]
40.1490521431
50.1502101421
60.1521630287
奇怪的是,当我将焦点从终端窗口切换到谷歌浏览器时,循环也会更新(但当我从终端切换到其他应用程序时不会更新)。
- - 更新 - -
如果我专注于 python 应用程序(可从 OS X 扩展坞上的 python 火箭图标访问),循环将正常运行。我很困惑,因为当我将焦点放在启动 python 脚本的终端上时,循环没有正确更新。