运行cefpython MessageLoop()时线程变慢

时间:2015-03-25 12:25:47

标签: python multithreading cefpython

我使用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脚本的终端上时,循环没有正确更新。

0 个答案:

没有答案