如何在cefpython中调用MessageLoopWork?
How to call MessageLoopWork in cefpython?
我用 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
使用 cefpython.PostTask() 函数在各种 CEF 线程上执行 post 任务。请参阅:https://code.google.com/p/cefpython/wiki/cefpython#PostTask_(int_threadId,_object_func_[,args..])_(void) 和第 61 期。它从 31.0 版开始可用。
wxpython.py 示例显示了如何将计时器与 MessageLoopWork() 和 MessageLoop() 一起使用。
我用 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
使用 cefpython.PostTask() 函数在各种 CEF 线程上执行 post 任务。请参阅:https://code.google.com/p/cefpython/wiki/cefpython#PostTask_(int_threadId,_object_func_[,args..])_(void) 和第 61 期。它从 31.0 版开始可用。
wxpython.py 示例显示了如何将计时器与 MessageLoopWork() 和 MessageLoop() 一起使用。