這裏就是我想要做的事:保持一個後臺線程活着,而它是從另一個線程監聽事件
不阻塞主線程,我想用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」的替換。但是,當我將它移動到後臺線程時,我並不知道我應該做的額外事情。 一旦我運行,我會發布解決方案,如果沒有人發佈了合適的答案。 謝謝:) –