这里就是我想要做的事:保持一个后台线程活着,而它是从另一个线程监听事件
不阻塞主线程,我想用Awesomium.NET
加载一个网页,操作DOM并做一些处理,然后将一些数据返回到主线程。
在我的后台线程,我创建了一个WebView
(实质上代表在Web浏览器选项卡),然后订阅其LoadingFrameComplete
事件(火灾时WebView
加载指定的URL)。然后我开始加载URL。
问题是,加载的URL不会阻止当前的线程。这意味着在后台线程通知WebView
加载URL后,线程完成。
一旦WebView
实际完成加载URL,正在侦听LoadingFrameComplete
事件的后台线程不再有效,因此它不能执行数据处理。
当然,这意味着没有数据被返回到用于显示的主线程..
任何建议,将不胜感激。
我不知道这个产品,但是为什么你在线程中没有这样做,就像在链接网站的代码片段中显示的那样? 'while(view-> IsLoading())core-> Update();'看起来就像是循环一直处理直到加载完成... –
@DarkFalcon嗯,我会被诅咒的......我以某种方式设法错过了那部分。它工作完美。不幸的是,'WebCore#Update'已弃用,并将在下一版本中删除。 当我在主线程上运行这个东西来熟悉Awesomium时,我已经将整个事情工作得更早了。 我这样做的方式是通过正确(不知不觉地)使用“WebCore#Update”的替换。但是,当我将它移动到后台线程时,我并不知道我应该做的额外事情。 一旦我运行,我会发布解决方案,如果没有人发布了合适的答案。 谢谢:) –