我使用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' s火箭图标访问),循环就可以正常运行。我很困惑,因为当我将焦点放在我启动python脚本的终端上时,循环没有正确更新。