【问题标题】:How to call MessageLoopWork in cefpython?如何在cefpython中调用MessageLoopWork?
【发布时间】:2015-03-24 16:50:15
【问题描述】:

我用cefpython做了一个简单的离屏渲染器。

我使用了cefpython.MessageLoop(),但我想用browser.GetFocusedFrame().ExecuteFunction执行一个javascript函数,它必须从主UI线程调用。

有没有办法在 cefpython 的消息循环上设置回调?

我也可以使用MessageLoopWork,但我不知道如何使用。我试图在单独的线程中调用它,但它不起作用:

import threading

def main_loop():
    cefpython.MessageLoopWork()
    threading.Timer(0.01, main_loop).start()

threading.Timer(0.01, main_loop).start()

我收到以下错误:

[0324/174806:ERROR_REPORT:context.cc(146)] Check failed: false. called on invalid thread

【问题讨论】:

    标签: python python-multithreading cefpython


    【解决方案1】:

    使用 cefpython.PostTask() 函数在各种 CEF 线程上发布任务。请参阅:https://code.google.com/p/cefpython/wiki/cefpython#PostTask_(int_threadId,_object_func_[,args..])_(void) 和第 61 期。它从 31.0 版开始可用。

    wxpython.py 示例展示了如何将计时器与 MessageLoopWork() 和 MessageLoop() 一起使用。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多