Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading QWebFrame::evaluateJavaScript(scriptSource)导致;SyntaxError:解析错误“;当不在主线程中执行时_Multithreading_Qt_Webkit_Qtwebkit_Qwebkit - Fatal编程技术网

Multithreading QWebFrame::evaluateJavaScript(scriptSource)导致;SyntaxError:解析错误“;当不在主线程中执行时

Multithreading QWebFrame::evaluateJavaScript(scriptSource)导致;SyntaxError:解析错误“;当不在主线程中执行时,multithreading,qt,webkit,qtwebkit,qwebkit,Multithreading,Qt,Webkit,Qtwebkit,Qwebkit,当我从主线程运行QWebFrame::evaluateJavaScript(scriptSource)时,一切似乎都很正常。但是当我尝试从另一个线程运行它时,我得到一个语法错误:Parse error。即使当我试图运行像1+1 有人能解释为什么会发生这种情况,以及这是否是预期的行为吗 是否有可能在另一个线程中使用QWebKit,然后在主线程中使用 注:我正在运行Qt4.8,我对QWebFrame或QT不太了解,但以下内容应该是正确的 简单来说,它的GUI应用程序和所有操作都必须在主线程中完成。如

当我从主线程运行
QWebFrame::evaluateJavaScript(scriptSource)
时,一切似乎都很正常。但是当我尝试从另一个线程运行它时,我得到一个
语法错误:Parse error
。即使当我试图运行像
1+1

有人能解释为什么会发生这种情况,以及这是否是预期的行为吗

是否有可能在另一个线程中使用QWebKit,然后在主线程中使用


注:我正在运行Qt4.8,我对QWebFrame或QT不太了解,但以下内容应该是正确的

简单来说,它的GUI应用程序和所有操作都必须在主线程中完成。如果您有多个线程,那么您必须找到一种方法将调用传递到您的案例中的主gui循环线程或主线程

主要原因之一是应用程序可能在内部使用的线程本地存储。如果从其他线程执行该函数,则可能不会设置本地存储

对于GTK调用,大多数(所有?)webkit调用必须通过GTK idle钩子进行引导,以便在适当的线程中执行。QT中应该有一些等价的东西